Skip to content

feat(libkernel): run threads for a lifted guest - #15803

Open
oberonlift wants to merge 31 commits into
boykopovar:mainfrom
oberonlift:lifted-libkernel
Open

oberonlift wants to merge 31 commits into
boykopovar:mainfrom
oberonlift:lifted-libkernel

Conversation

@oberonlift

@oberonlift oberonlift commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

Merge after #15802. Until the PRs before it merge, this PR also shows their changes; oberonlift#13 shows only its own.

ps5lift is a static recompiler for PS5 executables: it lifts a game's x86-64 code to LLVM IR and compiles it ahead of time to aarch64, which runs on Linux against AnyPS5's own libraries with no interpreter or JIT. It runs AnyPS5's PS5-style test programs and a homebrew media player to its home screen; commercial games are not playable yet. Branch ps5lift-preview merges all of its PRs (how to try it); native Apple Silicon support is coming along fast. It is a separate approach from the ARM64 compiler in #5021; #1835 has an introduction.

This is 7 of 8 PRs that let AnyPS5's libraries run a lifted program; the lifter itself follows them.

x86-64: behaviour unchanged. Thread objects stay on the host heap; the stack size arithmetic shared with lifted builds computes the same values.

What

  • Guest thread entries and exception handlers are called through GuestCpu, and a lifted thread entry, which the bridge already turned into a native thunk, is called directly. The x86 assembly for sigsetjmp, siglongjmp, getcontext and their kin is left out of lifted builds, where the runtime provides the jumps and context switching reports itself as not implemented.
  • A lifted guest thread runs on a guarded guest stack of the size it asked for, handed to the runtime through GuestCpuUseStack and reported by scePthreadAttrGet; the host stack is the size GuestCpuHostStackSize gives. The thread takes its guest stack and the console's x87 control word before it unblocks signals, so a signal raised at a new or suspended thread runs its handler on that guest stack.
  • In lifted builds thread objects come from the guest heap, so every thread handle is a guest address, as on the console. On an aarch64 host the host heap lies outside anything the guest can address.
  • DoMprotect reports the pages each protection change makes writable to GuestCpuMakingWritable_nid_no_patch. ps5lift loads from read-only segments without ordering, and its runtime stops the program when such pages overlap one. A MAP_FIXED mapping over such a segment is not reported yet.
  • A guest exception handler runs through GuestCpuCallInterrupted and sees the guest registers that GuestCpuInterruptedContext reports; the signal-delivery assembly is left out of lifted builds.
  • sceKernelWaitOnAddress reads a misaligned value with a plain copy followed by an acquire fence instead of x86's mov.
  • EnterGuestMainStack calls the guest entry on the stack the runtime gave the main thread, instead of switching to a main stack at the console's address.
  • The libkernel debt file lists what still differs in lifted builds, among them the MAP_FIXED gap, the host stack that the main and adopted threads report, and the zero fpstate, cs and ss an exception handler reads.

#5021 also changes some of the same files: Thread.cpp, Pthread.hpp, Exception.cpp, SignalSets.cpp, DirectMemory.cpp.

Tested

Compiled for x86-64 Linux before and after this PR (GCC 13, same flags): 158 of the 162 objects it reaches are byte-identical; Thread.cpp differs in scePthreadCreate's register allocation and a line-number constant, and Exception.cpp, SyncOnAddress.cpp and UserContext.cpp only in line-number constants.

On a DGX Spark (aarch64 Linux, NVIDIA GB10, LLVM 18), with all eight PRs and ps5lift on top: every library builds for a lifted program, 2,285 of AnyPS5's own tests pass in that build on lavapipe, and ps5lift's 69 tests pass, among them its libc, exceptions, kernel, fiber and module-loading fixtures and upstream's libc test programs.

The conventions check passes on this branch.

Checklist

  • Based on current main; no other open PR implements the same functions
  • One topic per PR; follow-ups go in a new PR
  • No comments in code except technical debt
  • Unimplemented paths throw (NotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file
  • No notes, investigation .md files or images added to the repository (attach them to this PR)
  • New third-party code is a submodule built from source
  • Generic behaviour, not specific to one title
  • Depends on: feat(libc): keep the guest's x87 long double exactly in lifted builds #15802
  • Fixes: none
  • Unblocks: none
  • GPUs tested: n/a
  • AI-assisted: yes

🤖 Generated with Claude Code

@TechLevelZero

Copy link
Copy Markdown
Contributor

✅ AMD GPU test: passed

PR head c1e6f6a merged onto main b11c7bf · tested 2026-11-04 17:30 UTC · 34 min

GPU AMD Radeon RX 6300 (RADV NAVI24), driver Mesa 25.2.8-0ubuntu0.24.04.4, Vulkan 1.4.318
Host Ubuntu 26.04.1 LTS, kernel 7.0.0-42-generic, container ubuntu:24.04
Logs build and test logs for this run
Build ✅ passed (Release, -DANYPS5_ENABLE_SPIRV_TOOLS=ON)
Tests ✅ 3,820 passed · 13 failed (0 new, 11 also fail on main, 2 unstable on main) · 62 skipped (ANYPS5_REQUIRE_VULKAN=1)
Test setup CPU-only tests without a GPU; GPU tests (and any CPU-only test that failed or skipped without one) once on the GPU with VK_LAYER_KHRONOS_validation and ANYPS5_NO_SHADER_CACHE=1; main ran the same way
Vulkan validation ✅ no new validation IDs vs main (1398 tests run on the GPU)
Slow tests (>30 s, GPU tests timed with validation layers) ⚠️ agc_driver_pipeline_journal 120.7 s, ⚠️ agc_driver_graphics 86.8 s, ⚠️ agc_driver_graphics_maps_fallback 83.3 s, ⚠️ public_headers 79.0 s, ⚠️ agc_driver_image_sample_unnormalized 57.0 s
Unstable on main (2, these also failed in recent main runs on this machine; not counted against this PR)
agc_driver_pipeline_journal: failed in 8 of the last 10 main runs
agc_driver_two_sample_alpha_to_coverage_sample_mask_export: failed in 3 of the last 10 main runs
Failing on main too (11, not counted against this PR)
agc_driver_alpha_to_coverage_sample_mask_export
agc_driver_guest_memory_lifetime_direct
agc_driver_image_table
agc_driver_job_manager_compute_capacity
agc_driver_native_depth_bda_clear
agc_driver_native_depth_buffer_clear
agc_driver_native_depth_clears
agc_driver_native_multisample_depth
agc_driver_submit_progress
guest_mmap_executable
guest_socket_options_multicast
Validation IDs already present on main (8 IDs in 809 tests)
VUID-VkDeviceCreateInfo-pNext-pNext (809 tests): agc_compute_pipeline_replay, agc_driver, agc_driver_address_draw_space_reuse, agc_driver_address_draw_space_reuse_held, agc_driver_address_draw_space_reuse_off, agc_driver_address_draw_space_reuse_transitions, agc_driver_address_draw_space_reuse_verify, agc_driver_address_passes, and 801 more
VUID-vkCmdCopyImage-srcImage-01548 (11 tests): agc_driver_depth_clear_hle, agc_driver_depth_plane_cpu_write_after_memo, agc_driver_depth_plane_cpu_write_after_page_unwatch, agc_driver_depth_plane_cpu_write_after_partial_unwatch, agc_driver_depth_plane_partial_store_image_copy, agc_driver_depth_plane_partial_store_unimported, agc_driver_depth_plane_partially_unmapped_plane, agc_driver_depth_plane_unmapped_plane, and 3 more
VUID-vkCmdCopyImage-srcImage-01551 (11 tests): agc_driver_depth_clear_hle, agc_driver_depth_plane_cpu_write_after_memo, agc_driver_depth_plane_cpu_write_after_page_unwatch, agc_driver_depth_plane_cpu_write_after_partial_unwatch, agc_driver_depth_plane_partial_store_image_copy, agc_driver_depth_plane_partial_store_unimported, agc_driver_depth_plane_partially_unmapped_plane, agc_driver_depth_plane_unmapped_plane, and 3 more
VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-00605 (2 tests): agc_driver_prepared_exports, agc_driver_srgb8_color_target
VUID-VkSamplerCreateInfo-addressModeU-01079 (1 test): agc_driver_image_gather_volume
VUID-VkSamplerCreateInfo-addressModeU-parameter (1 test): agc_driver_image_gather_volume
VUID-VkSamplerCreateInfo-addressModeV-parameter (1 test): agc_driver_image_gather_volume
VUID-VkSamplerCreateInfo-addressModeW-parameter (1 test): agc_driver_image_gather_volume
Skipped (62)
agc_driver_bda_reads_shadowed_results: skipped, the device reports watched host memory written when it imports or reads it
agc_driver_bda_reads_shadowed_results_per_build: skipped, the device reports watched host memory written when it imports or reads it
agc_driver_copied_writer_label_order: skipped, the device reports a minStorageBufferOffsetAlignment of 4, so the dispatch binds its record at +0x1004 in place and nothing is written back; the test needs an alignment above 4
agc_driver_copied_writer_label_order_drain: skipped, the device reports a minStorageBufferOffsetAlignment of 4, so the dispatch binds its record at +0x1004 in place and nothing is written back; the test needs an alignment above 4
agc_driver_float16_unused_nan_payloads: skipped, the device has no native f16 conversions with RTE rounding and kept f16 denormals
agc_driver_gcn_display_present: skipped, no display: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
agc_driver_image_table_vouched_lookups: skipped, the device reports 4 of 4 host-imported pages written after a GPU read, so a watched imported table cannot be vouched for
agc_driver_linear_target_direct_write_completion: skipped, the device does not keep host imports write-watched, so no completion stamp over the target is tracked
agc_driver_ngg_vertex_wave_reduction: skipped, s3 describes a 32-lane wave only on 32-lane subgroups, and the device has 64 lanes
agc_driver_scattered_runs: skipped, host imports are unavailable: /dev/udmabuf is not accessible
agc_driver_sparse_dma_buf_import: skipped, host imports are unavailable: /dev/udmabuf is not accessible
agc_driver_unit_shadow: skipped, the device does not import watched host memory for unit shadows
agc_driver_unit_shadow_budget: skipped, the device does not import watched host memory for unit shadows
agc_driver_vertex_elected_atomic_max: skipped, the device runs vertex programs in subgroups, so they keep their cross-lane reductions
agc_host_import_sparse: skipped, host imports are unavailable: /dev/udmabuf is not accessible
agc_idle_publish_wait: skipped, the device reports 4 of 4 host-imported pages written after a GPU read, so a forced watch of the import reads its submissions as CPU stores
agc_import_settle_initial_dcc: skipped, the device has no deferred settle of host imports: imports under 1 MiB wait for one only on Windows
agc_shadowed_key_stores: skipped, the device imports no watched host memory under a unit shadow
agc_small_tiled_shadow_label: skipped, host imports are unavailable: the test block is not imported and watched
agc_storage_clear_hand_over: skipped, the device imports no watched host memory for the clear-key hand-over
agc_storage_pending_key_refresh: skipped, refreshes over a pending key store are not testable here
agc_unit_shadow: skipped, the device does not import watched host memory for unit shadows
agc_unit_shadow_completion_store: skipped, the device reports watched host memory written when it imports or reads it
guest_http_uri_locale: 
guest_net_ctl: skipped, the host has no IPv4 address
guest_video_out_color_space: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_hdr: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_high_frame_rate: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_output_mode: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_resolution_status: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_wqhd_detection: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
video_out_flip_aftergp
Reproduce
git fetch origin c1e6f6ab5ab1804f999df18c1fda37096c2473bf b11c7bf84f5d2f636ff60166cc3371bd071e24d5
git checkout b11c7bf84f5d2f636ff60166cc3371bd071e24d5 && git merge --no-ff c1e6f6ab5ab1804f999df18c1fda37096c2473bf
git submodule update --init --recursive
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON -DANYPS5_ENABLE_SPIRV_TOOLS=ON
cmake --build build && cmake --build build --target libs
VK_DRIVER_FILES=/nonexistent/icd.json ctest --test-dir build -E '^(agc|shader|recompiler|videoout|video_out|guest_video_out|vulkan)|gpu' --timeout 120 --parallel 12 --output-on-failure
ANYPS5_REQUIRE_VULKAN=1 ANYPS5_NO_SHADER_CACHE=1 VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation \
  ctest --test-dir build -R '^(agc|shader|recompiler|videoout|video_out|guest_video_out|vulkan)|gpu' --timeout 120 --parallel 16 --output-on-failure
# failures are then re-run alone: --timeout 360 --parallel 2; new validation IDs: the test alone, twice, --parallel 1

Automated build and test on a contributor's AMD machine; it does not replace upstream CI. A new comment is posted for each new push. Full logs.

@TechLevelZero

Copy link
Copy Markdown
Contributor

✅ NVIDIA GPU test: passed

PR head c1e6f6a merged onto main b11c7bf · tested 2026-11-04 17:52 UTC · 34 min

GPU NVIDIA RTX 2000 Ada Generation, driver 595.99.02, Vulkan 1.4.329
Host Ubuntu 26.04.1 LTS, kernel 7.0.0-38-generic, container ubuntu:24.04
Logs build and test logs for this run
Build ✅ passed (Release, -DANYPS5_ENABLE_SPIRV_TOOLS=ON)
Tests ✅ 3,836 passed · 6 failed (0 new, 3 also fail on main, 3 unstable on main) · 53 skipped (ANYPS5_REQUIRE_VULKAN=1)
Test setup CPU-only tests without a GPU; GPU tests (and any CPU-only test that failed or skipped without one) once on the GPU with VK_LAYER_KHRONOS_validation and ANYPS5_NO_SHADER_CACHE=1; main ran the same way
Vulkan validation ✅ no new validation IDs vs main (1398 tests run on the GPU)
Slow tests (>30 s, GPU tests timed with validation layers) ⚠️ agc_driver_pipeline_journal 120.1 s, ⚠️ agc_driver_bda_device 64.5 s, ⚠️ agc_driver_graphics_maps_fallback 30.9 s, ⚠️ agc_driver_graphics 30.1 s
Unstable on main (3, these also failed in recent main runs on this machine; not counted against this PR)
agc_driver_pipeline_journal: failed in 3 of the last 10 main runs
agc_submit_progress: failed in 4 of the last 10 main runs
agc_submit_progress_no_timeline: failed in 3 of the last 10 main runs
Failing on main too (3, not counted against this PR)
agc_driver_image_table
guest_mmap_executable
guest_socket_options_multicast
Validation IDs already present on main (13 IDs in 809 tests)
VUID-VkDeviceCreateInfo-pNext-pNext (809 tests): agc_compute_pipeline_replay, agc_driver, agc_driver_address_draw_space_reuse, agc_driver_address_draw_space_reuse_held, agc_driver_address_draw_space_reuse_off, agc_driver_address_draw_space_reuse_transitions, agc_driver_address_draw_space_reuse_verify, agc_driver_address_passes, and 801 more
VUID-vkCmdCopyImage-srcImage-01548 (15 tests): agc_driver_depth_clear_hle, agc_driver_depth_plane_buffer_memory, agc_driver_depth_plane_cpu_write_after_memo, agc_driver_depth_plane_cpu_write_after_page_unwatch, agc_driver_depth_plane_cpu_write_after_partial_unwatch, agc_driver_depth_plane_partial_store, agc_driver_depth_plane_partial_store_image_copy, agc_driver_depth_plane_partial_store_unimported, and 7 more
VUID-vkCmdCopyImage-srcImage-01551 (15 tests): agc_driver_depth_clear_hle, agc_driver_depth_plane_buffer_memory, agc_driver_depth_plane_cpu_write_after_memo, agc_driver_depth_plane_cpu_write_after_page_unwatch, agc_driver_depth_plane_cpu_write_after_partial_unwatch, agc_driver_depth_plane_partial_store, agc_driver_depth_plane_partial_store_image_copy, agc_driver_depth_plane_partial_store_unimported, and 7 more
VUID-VkShaderModuleCreateInfo-pCode-08737 (8 tests): agc_driver_dpp16_operands, agc_driver_dpp8_pk_fmac, agc_driver_dx10_clamp, agc_driver_float16_fma_rounding, agc_driver_float16_unused_nan_payloads, agc_driver_packed_alu, agc_driver_packed_f16_denormal_modes, agc_driver_packed_float16_native
VUID-VkShaderModuleCreateInfo-pCode-08739 (8 tests): agc_driver_dpp16_operands, agc_driver_dpp8_pk_fmac, agc_driver_dx10_clamp, agc_driver_float16_fma_rounding, agc_driver_float16_unused_nan_payloads, agc_driver_packed_alu, agc_driver_packed_f16_denormal_modes, agc_driver_packed_float16_native
VUID-VkShaderModuleCreateInfo-pCode-08741 (8 tests): agc_driver_dpp16_operands, agc_driver_dpp8_pk_fmac, agc_driver_dx10_clamp, agc_driver_float16_fma_rounding, agc_driver_float16_unused_nan_payloads, agc_driver_packed_alu, agc_driver_packed_f16_denormal_modes, agc_driver_packed_float16_native
VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-00605 (2 tests): agc_driver_prepared_exports, agc_driver_srgb8_color_target
VUID-VkPipelineShaderStageCreateInfo-module-parameter (1 test): agc_driver_float16_unused_nan_payloads
VUID-VkPipelineShaderStageCreateInfo-pSpecializationInfo-06849 (1 test): agc_driver_float16_unused_nan_payloads
VUID-VkSamplerCreateInfo-addressModeU-01079 (1 test): agc_driver_image_gather_volume
VUID-VkSamplerCreateInfo-addressModeU-parameter (1 test): agc_driver_image_gather_volume
VUID-VkSamplerCreateInfo-addressModeV-parameter (1 test): agc_driver_image_gather_volume
VUID-VkSamplerCreateInfo-addressModeW-parameter (1 test): agc_driver_image_gather_volume
Skipped (53)
agc_driver_bda_reads_shadowed_results: skipped, the device reports watched host memory written when it imports or reads it
agc_driver_bda_reads_shadowed_results_per_build: skipped, the device reports watched host memory written when it imports or reads it
agc_driver_gcn_display_present: skipped, no display: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
agc_driver_msaa_dcc_compared_import_2: skipped, the device reports host imports that keep write protection, so the write-watch probe compares none of them
agc_driver_msaa_dcc_compared_import_4: skipped, the device reports host imports that keep write protection, so the write-watch probe compares none of them
agc_driver_msaa_dcc_compared_import_8: skipped, the device reports host imports that keep write protection, so the write-watch probe compares none of them
agc_driver_sample_order_grid_reference: skipped, the device does not keep depth drawn at custom sample locations at those locations, even after a transition that names them: the composite of uniform renders holds the guest's depth in 0 of 3005 sloped samples, so no path can be compared with it bit for bit
agc_driver_scattered_runs: skipped, host imports are unavailable: /dev/udmabuf is not accessible
agc_driver_sparse_dma_buf_import: skipped, host imports are unavailable: /dev/udmabuf is not accessible
agc_driver_stencil_ref_export: skipped, the device lacks VK_EXT_shader_stencil_export
agc_driver_vertex_elected_atomic_max: skipped, the device runs vertex programs in subgroups, so they keep their cross-lane reductions
agc_host_import_sparse: skipped, host imports are unavailable: /dev/udmabuf is not accessible
agc_import_settle_initial_dcc: skipped, the device has no deferred settle of host imports: imports under 1 MiB wait for one only on Windows
agc_unit_shadow_completion_store: skipped, the device reports watched host memory written when it imports or reads it
guest_http_uri_locale: 
guest_net_ctl: skipped, the host has no IPv4 address
guest_video_out_color_space: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_hdr: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_high_frame_rate: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_output_mode: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_resolution_status: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_wqhd_detection: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
video_out_flip_aftergpu: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_backtoback: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_controls: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_cpuflip: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_cpuflip_in_order: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_dcc: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configure
Reproduce
git fetch origin c1e6f6ab5ab1804f999df18c1fda37096c2473bf b11c7bf84f5d2f636ff60166cc3371bd071e24d5
git checkout b11c7bf84f5d2f636ff60166cc3371bd071e24d5 && git merge --no-ff c1e6f6ab5ab1804f999df18c1fda37096c2473bf
git submodule update --init --recursive
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON -DANYPS5_ENABLE_SPIRV_TOOLS=ON
cmake --build build && cmake --build build --target libs
VK_DRIVER_FILES=/nonexistent/icd.json ctest --test-dir build -E '^(agc|shader|recompiler|videoout|video_out|guest_video_out|vulkan)|gpu' --timeout 120 --parallel 32 --output-on-failure
ANYPS5_REQUIRE_VULKAN=1 ANYPS5_NO_SHADER_CACHE=1 VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation \
  ctest --test-dir build -R '^(agc|shader|recompiler|videoout|video_out|guest_video_out|vulkan)|gpu' --timeout 120 --parallel 4 --output-on-failure
# failures are then re-run alone: --timeout 360 --parallel 2; new validation IDs: the test alone, twice, --parallel 1

Automated build and test on a contributor's NVIDIA machine; it does not replace upstream CI. A new comment is posted for each new push. Full logs.

@TechLevelZero

Copy link
Copy Markdown
Contributor

✅ NVIDIA GPU test: passed

PR head 2a44260 merged onto main b11c7bf · tested 2026-11-04 18:44 UTC · 40 min

GPU NVIDIA RTX 2000 Ada Generation, driver 595.99.02, Vulkan 1.4.329
Host Ubuntu 26.04.1 LTS, kernel 7.0.0-38-generic, container ubuntu:24.04
Logs build and test logs for this run
Build ✅ passed (Release, -DANYPS5_ENABLE_SPIRV_TOOLS=ON)
Tests ✅ 3,835 passed · 7 failed (0 new, 3 also fail on main, 4 unstable on main) · 53 skipped (ANYPS5_REQUIRE_VULKAN=1)
Test setup CPU-only tests without a GPU; GPU tests (and any CPU-only test that failed or skipped without one) once on the GPU with VK_LAYER_KHRONOS_validation and ANYPS5_NO_SHADER_CACHE=1; main ran the same way
Vulkan validation ✅ no new validation IDs vs main (1398 tests run on the GPU)
Slow tests (>30 s, GPU tests timed with validation layers) ⚠️ agc_driver_pipeline_journal 120.1 s, ⚠️ agc_driver_bda_device 57.4 s, ⚠️ agc_driver_graphics_maps_fallback 31.0 s, ⚠️ agc_driver_graphics 30.2 s
Unstable on main (4, these also failed in recent main runs on this machine; not counted against this PR)
agc_driver_pipeline_journal: failed in 3 of the last 10 main runs
agc_driver_submit_progress: failed in 3 of the last 10 main runs
agc_submit_progress: failed in 4 of the last 10 main runs
agc_submit_progress_no_timeline: failed in 3 of the last 10 main runs
Failing on main too (3, not counted against this PR)
agc_driver_image_table
guest_mmap_executable
guest_socket_options_multicast
Validation IDs already present on main (13 IDs in 809 tests)
VUID-VkDeviceCreateInfo-pNext-pNext (809 tests): agc_compute_pipeline_replay, agc_driver, agc_driver_address_draw_space_reuse, agc_driver_address_draw_space_reuse_held, agc_driver_address_draw_space_reuse_off, agc_driver_address_draw_space_reuse_transitions, agc_driver_address_draw_space_reuse_verify, agc_driver_address_passes, and 801 more
VUID-vkCmdCopyImage-srcImage-01548 (15 tests): agc_driver_depth_clear_hle, agc_driver_depth_plane_buffer_memory, agc_driver_depth_plane_cpu_write_after_memo, agc_driver_depth_plane_cpu_write_after_page_unwatch, agc_driver_depth_plane_cpu_write_after_partial_unwatch, agc_driver_depth_plane_partial_store, agc_driver_depth_plane_partial_store_image_copy, agc_driver_depth_plane_partial_store_unimported, and 7 more
VUID-vkCmdCopyImage-srcImage-01551 (15 tests): agc_driver_depth_clear_hle, agc_driver_depth_plane_buffer_memory, agc_driver_depth_plane_cpu_write_after_memo, agc_driver_depth_plane_cpu_write_after_page_unwatch, agc_driver_depth_plane_cpu_write_after_partial_unwatch, agc_driver_depth_plane_partial_store, agc_driver_depth_plane_partial_store_image_copy, agc_driver_depth_plane_partial_store_unimported, and 7 more
VUID-VkShaderModuleCreateInfo-pCode-08737 (8 tests): agc_driver_dpp16_operands, agc_driver_dpp8_pk_fmac, agc_driver_dx10_clamp, agc_driver_float16_fma_rounding, agc_driver_float16_unused_nan_payloads, agc_driver_packed_alu, agc_driver_packed_f16_denormal_modes, agc_driver_packed_float16_native
VUID-VkShaderModuleCreateInfo-pCode-08739 (8 tests): agc_driver_dpp16_operands, agc_driver_dpp8_pk_fmac, agc_driver_dx10_clamp, agc_driver_float16_fma_rounding, agc_driver_float16_unused_nan_payloads, agc_driver_packed_alu, agc_driver_packed_f16_denormal_modes, agc_driver_packed_float16_native
VUID-VkShaderModuleCreateInfo-pCode-08741 (8 tests): agc_driver_dpp16_operands, agc_driver_dpp8_pk_fmac, agc_driver_dx10_clamp, agc_driver_float16_fma_rounding, agc_driver_float16_unused_nan_payloads, agc_driver_packed_alu, agc_driver_packed_f16_denormal_modes, agc_driver_packed_float16_native
VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-00605 (2 tests): agc_driver_prepared_exports, agc_driver_srgb8_color_target
VUID-VkPipelineShaderStageCreateInfo-module-parameter (1 test): agc_driver_float16_unused_nan_payloads
VUID-VkPipelineShaderStageCreateInfo-pSpecializationInfo-06849 (1 test): agc_driver_float16_unused_nan_payloads
VUID-VkSamplerCreateInfo-addressModeU-01079 (1 test): agc_driver_image_gather_volume
VUID-VkSamplerCreateInfo-addressModeU-parameter (1 test): agc_driver_image_gather_volume
VUID-VkSamplerCreateInfo-addressModeV-parameter (1 test): agc_driver_image_gather_volume
VUID-VkSamplerCreateInfo-addressModeW-parameter (1 test): agc_driver_image_gather_volume
Skipped (53)
agc_driver_bda_reads_shadowed_results: skipped, the device reports watched host memory written when it imports or reads it
agc_driver_bda_reads_shadowed_results_per_build: skipped, the device reports watched host memory written when it imports or reads it
agc_driver_gcn_display_present: skipped, no display: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
agc_driver_msaa_dcc_compared_import_2: skipped, the device reports host imports that keep write protection, so the write-watch probe compares none of them
agc_driver_msaa_dcc_compared_import_4: skipped, the device reports host imports that keep write protection, so the write-watch probe compares none of them
agc_driver_msaa_dcc_compared_import_8: skipped, the device reports host imports that keep write protection, so the write-watch probe compares none of them
agc_driver_sample_order_grid_reference: skipped, the device does not keep depth drawn at custom sample locations at those locations, even after a transition that names them: the composite of uniform renders holds the guest's depth in 0 of 3005 sloped samples, so no path can be compared with it bit for bit
agc_driver_scattered_runs: skipped, host imports are unavailable: /dev/udmabuf is not accessible
agc_driver_sparse_dma_buf_import: skipped, host imports are unavailable: /dev/udmabuf is not accessible
agc_driver_stencil_ref_export: skipped, the device lacks VK_EXT_shader_stencil_export
agc_driver_vertex_elected_atomic_max: skipped, the device runs vertex programs in subgroups, so they keep their cross-lane reductions
agc_host_import_sparse: skipped, host imports are unavailable: /dev/udmabuf is not accessible
agc_import_settle_initial_dcc: skipped, the device has no deferred settle of host imports: imports under 1 MiB wait for one only on Windows
agc_unit_shadow_completion_store: skipped, the device reports watched host memory written when it imports or reads it
guest_http_uri_locale: 
guest_net_ctl: skipped, the host has no IPv4 address
guest_video_out_color_space: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_hdr: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_high_frame_rate: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_output_mode: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_resolution_status: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_wqhd_detection: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
video_out_flip_aftergpu: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_backtoback: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_controls: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_cpuflip: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_cpuflip_in_order: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_dcc: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configure
Reproduce
git fetch origin 2a4426034840b4ff642bc24ae68e7d336f90ac58 b11c7bf84f5d2f636ff60166cc3371bd071e24d5
git checkout b11c7bf84f5d2f636ff60166cc3371bd071e24d5 && git merge --no-ff 2a4426034840b4ff642bc24ae68e7d336f90ac58
git submodule update --init --recursive
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON -DANYPS5_ENABLE_SPIRV_TOOLS=ON
cmake --build build && cmake --build build --target libs
VK_DRIVER_FILES=/nonexistent/icd.json ctest --test-dir build -E '^(agc|shader|recompiler|videoout|video_out|guest_video_out|vulkan)|gpu' --timeout 120 --parallel 32 --output-on-failure
ANYPS5_REQUIRE_VULKAN=1 ANYPS5_NO_SHADER_CACHE=1 VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation \
  ctest --test-dir build -R '^(agc|shader|recompiler|videoout|video_out|guest_video_out|vulkan)|gpu' --timeout 120 --parallel 4 --output-on-failure
# failures are then re-run alone: --timeout 360 --parallel 2; new validation IDs: the test alone, twice, --parallel 1

Automated build and test on a contributor's NVIDIA machine; it does not replace upstream CI. A new comment is posted for each new push. Full logs.

@github-actions github-actions Bot added the needs rebase Conflicts with main, rebase needed label Nov 5, 2026
@TechLevelZero

Copy link
Copy Markdown
Contributor

✅ AMD GPU test: passed

PR head c0cdf08 merged onto main b611e63 · tested 2026-11-05 01:12 UTC · 26 min

GPU AMD Radeon RX 6300 (RADV NAVI24), driver Mesa 25.2.8-0ubuntu0.24.04.4, Vulkan 1.4.318
Host Ubuntu 26.04.1 LTS, kernel 7.0.0-42-generic, container ubuntu:24.04
Logs build and test logs for this run
Build ✅ passed (Release, -DANYPS5_ENABLE_SPIRV_TOOLS=ON)
Tests ✅ 3,871 passed · 14 failed (0 new, 12 also fail on main, 2 unstable on main) · 62 skipped (ANYPS5_REQUIRE_VULKAN=1)
Test setup CPU-only tests without a GPU; GPU tests (and any CPU-only test that failed or skipped without one) once on the GPU with VK_LAYER_KHRONOS_validation and ANYPS5_NO_SHADER_CACHE=1; main ran the same way
Vulkan validation ✅ no new validation IDs vs main (1471 tests run on the GPU)
Slow tests (>30 s, GPU tests timed with validation layers) ⚠️ agc_driver_pipeline_journal 120.5 s, ⚠️ agc_driver_graphics_maps_fallback 83.3 s, ⚠️ agc_driver_graphics 79.8 s, ⚠️ agc_driver_bda_device 54.3 s, ⚠️ agc_driver_image_sample_unnormalized 53.8 s
Unstable on main (2, these also failed in recent main runs on this machine; not counted against this PR)
agc_driver_pipeline_journal: failed in 9 of the last 10 main runs
agc_driver_two_sample_alpha_to_coverage_sample_mask_export: failed in 4 of the last 10 main runs
Failing on main too (12, not counted against this PR)
agc_driver_alpha_to_coverage_sample_mask_export
agc_driver_guest_memory_lifetime_direct
agc_driver_image_gather_volume
agc_driver_image_table
agc_driver_job_manager_compute_capacity
agc_driver_native_depth_bda_clear
agc_driver_native_depth_buffer_clear
agc_driver_native_depth_clears
agc_driver_native_multisample_depth
agc_driver_submit_progress
guest_mmap_executable
guest_socket_options_multicast
Validated but not compared (65, not in the main baseline's validation pass)
public_headers
public_headers_compile_0
public_headers_compile_1
public_headers_compile_10
public_headers_compile_11
public_headers_compile_12
public_headers_compile_13
public_headers_compile_14
public_headers_compile_15
public_headers_compile_16
public_headers_compile_17
public_headers_compile_18
public_headers_compile_19
public_headers_compile_2
public_headers_compile_20
public_headers_compile_21
public_headers_compile_22
public_headers_compile_23
public_headers_compile_24
public_headers_compile_25
public_headers_compile_26
public_headers_compile_27
public_headers_compile_28
public_headers_compile_29
public_headers_compile_3
public_headers_compile_30
public_headers_compile_31
public_headers_compile_32
public_headers_compile_33
public_headers_compile_34
public_headers_compile_35
public_headers_compile_36
public_headers_compile_37
public_headers_compile_38
public_headers_compile_39
public_headers_compile_4
public_headers_compile_40
public_headers_compile_41
public_headers_compile_42
public_headers_compile_43
public_headers_compile_44
public_headers_compile_45
public_headers_compile_46
public_headers_compile_47
public_headers_compile_48
public_headers_compile_49
public_headers_compile_5
public_headers_compile_50
public_headers_compile_51
public_headers_compile_52
public_headers_compile_53
public_headers_compile_54
public_headers_compile_55
public_headers_compile_56
public_headers_compile_57
public_headers_compile_58
public_headers_compile_59
public_headers_compile_6
public_headers_compile_60
public_headers_compile_61
public_headers_compile_62
public_headers_compile_63
public_headers_compile_7
public_headers_compile_8
public_headers_compile_9
Validation IDs already present on main (4 IDs in 811 tests)
VUID-VkDeviceCreateInfo-pNext-pNext (811 tests): agc_compute_pipeline_replay, agc_driver, agc_driver_address_draw_space_reuse, agc_driver_address_draw_space_reuse_held, agc_driver_address_draw_space_reuse_off, agc_driver_address_draw_space_reuse_transitions, agc_driver_address_draw_space_reuse_verify, agc_driver_address_passes, and 803 more
VUID-vkCmdCopyImage-srcImage-01548 (11 tests): agc_driver_depth_clear_hle, agc_driver_depth_plane_cpu_write_after_memo, agc_driver_depth_plane_cpu_write_after_page_unwatch, agc_driver_depth_plane_cpu_write_after_partial_unwatch, agc_driver_depth_plane_partial_store_image_copy, agc_driver_depth_plane_partial_store_unimported, agc_driver_depth_plane_partially_unmapped_plane, agc_driver_depth_plane_unmapped_plane, and 3 more
VUID-vkCmdCopyImage-srcImage-01551 (11 tests): agc_driver_depth_clear_hle, agc_driver_depth_plane_cpu_write_after_memo, agc_driver_depth_plane_cpu_write_after_page_unwatch, agc_driver_depth_plane_cpu_write_after_partial_unwatch, agc_driver_depth_plane_partial_store_image_copy, agc_driver_depth_plane_partial_store_unimported, agc_driver_depth_plane_partially_unmapped_plane, agc_driver_depth_plane_unmapped_plane, and 3 more
VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-00605 (2 tests): agc_driver_prepared_exports, agc_driver_srgb8_color_target
Skipped (62)
agc_driver_bda_reads_shadowed_results: skipped, the device reports watched host memory written when it imports or reads it
agc_driver_bda_reads_shadowed_results_per_build: skipped, the device reports watched host memory written when it imports or reads it
agc_driver_copied_writer_label_order: skipped, the device reports a minStorageBufferOffsetAlignment of 4, so the dispatch binds its record at +0x1004 in place and nothing is written back; the test needs an alignment above 4
agc_driver_copied_writer_label_order_drain: skipped, the device reports a minStorageBufferOffsetAlignment of 4, so the dispatch binds its record at +0x1004 in place and nothing is written back; the test needs an alignment above 4
agc_driver_float16_unused_nan_payloads: skipped, the device has no native f16 conversions with RTE rounding and kept f16 denormals
agc_driver_gcn_display_present: skipped, no display: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
agc_driver_image_table_vouched_lookups: skipped, the device reports 4 of 4 host-imported pages written after a GPU read, so a watched imported table cannot be vouched for
agc_driver_linear_target_direct_write_completion: skipped, the device does not keep host imports write-watched, so no completion stamp over the target is tracked
agc_driver_ngg_vertex_wave_reduction: skipped, s3 describes a 32-lane wave only on 32-lane subgroups, and the device has 64 lanes
agc_driver_scattered_runs: skipped, host imports are unavailable: /dev/udmabuf is not accessible
agc_driver_sparse_dma_buf_import: skipped, host imports are unavailable: /dev/udmabuf is not accessible
agc_driver_unit_shadow: skipped, the device does not import watched host memory for unit shadows
agc_driver_unit_shadow_budget: skipped, the device does not import watched host memory for unit shadows
agc_driver_vertex_elected_atomic_max: skipped, the device runs vertex programs in subgroups, so they keep their cross-lane reductions
agc_host_import_sparse: skipped, host imports are unavailable: /dev/udmabuf is not accessible
agc_idle_publish_wait: skipped, the device reports 4 of 4 host-imported pages written after a GPU read, so a forced watch of the import reads its submissions as CPU stores
agc_import_settle_initial_dcc: skipped, the device has no deferred settle of host imports: imports under 1 MiB wait for one only on Windows
agc_shadowed_key_stores: skipped, the device imports no watched host memory under a unit shadow
agc_small_tiled_shadow_label: skipped, host imports are unavailable: the test block is not imported and watched
agc_storage_clear_hand_over: skipped, the device imports no watched host memory for the clear-key hand-over
agc_storage_pending_key_refresh: skipped, refreshes over a pending key store are not testable here
agc_unit_shadow: skipped, the device does not import watched host memory for unit shadows
agc_unit_shadow_completion_store: skipped, the device reports watched host memory written when it imports or reads it
guest_http_uri_locale: 
guest_net_ctl: skipped, the host has no IPv4 address
guest_video_out_color_space: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_hdr: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_high_frame_rate: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_output_mode: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_resolution_status: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_wqhd_detection: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
video_out_flip_aftergp
Reproduce
git fetch origin c0cdf08f29a669b0df7a179a19b3e3af22c3ba2c b611e634f7fc024f0c13e342d96de744448ef1d9
git checkout b611e634f7fc024f0c13e342d96de744448ef1d9 && git merge --no-ff c0cdf08f29a669b0df7a179a19b3e3af22c3ba2c
git submodule update --init --recursive
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON -DANYPS5_ENABLE_SPIRV_TOOLS=ON
cmake --build build && cmake --build build --target libs
VK_DRIVER_FILES=/nonexistent/icd.json ctest --test-dir build -E '^(agc|shader|recompiler|videoout|video_out|guest_video_out|vulkan)|gpu' --timeout 120 --parallel 12 --output-on-failure
ANYPS5_REQUIRE_VULKAN=1 ANYPS5_NO_SHADER_CACHE=1 VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation \
  ctest --test-dir build -R '^(agc|shader|recompiler|videoout|video_out|guest_video_out|vulkan)|gpu' --timeout 120 --parallel 16 --output-on-failure
# failures are then re-run alone: --timeout 360 --parallel 2; new validation IDs: the test alone, twice, --parallel 1

Automated build and test on a contributor's AMD machine; it does not replace upstream CI. A new comment is posted for each new push. Full logs.

@github-actions github-actions Bot removed the needs rebase Conflicts with main, rebase needed label Nov 5, 2026
@TechLevelZero

Copy link
Copy Markdown
Contributor

✅ NVIDIA GPU test: passed

PR head 4b21d14 merged onto main acac7c8 · tested 2026-11-05 03:47 UTC · 33 min

GPU NVIDIA RTX 2000 Ada Generation, driver 595.99.02, Vulkan 1.4.329
Host Ubuntu 26.04.1 LTS, kernel 7.0.0-38-generic, container ubuntu:24.04
Logs build and test logs for this run
Build ✅ passed (Release, -DANYPS5_ENABLE_SPIRV_TOOLS=ON)
Tests ✅ 3,896 passed · 6 failed (0 new, 3 also fail on main, 3 unstable on main) · 59 skipped (ANYPS5_REQUIRE_VULKAN=1)
Test setup CPU-only tests without a GPU; GPU tests (and any CPU-only test that failed or skipped without one) once on the GPU with VK_LAYER_KHRONOS_validation and ANYPS5_NO_SHADER_CACHE=1; main ran the same way
Vulkan validation ✅ no new validation IDs vs main (1413 tests run on the GPU)
Slow tests (>30 s, GPU tests timed with validation layers) ⚠️ agc_driver_pipeline_journal 120.1 s, ⚠️ agc_driver_bda_device 72.1 s, ⚠️ agc_driver_graphics_maps_fallback 31.3 s, ⚠️ agc_driver_lazy_resolved_abi 30.8 s
Unstable on main (3, these also failed in recent main runs on this machine; not counted against this PR)
agc_driver_pipeline_journal: failed in 3 of the last 10 main runs
agc_submit_progress: failed in 3 of the last 10 main runs
agc_submit_progress_no_timeline: failed in 2 of the last 10 main runs
Failing on main too (3, not counted against this PR)
agc_driver_image_table
guest_mmap_executable
guest_socket_options_multicast
Validation IDs already present on main (9 IDs in 812 tests)
VUID-VkDeviceCreateInfo-pNext-pNext (812 tests): agc_compute_pipeline_replay, agc_driver, agc_driver_address_draw_space_reuse, agc_driver_address_draw_space_reuse_held, agc_driver_address_draw_space_reuse_off, agc_driver_address_draw_space_reuse_transitions, agc_driver_address_draw_space_reuse_verify, agc_driver_address_passes, and 804 more
VUID-vkCmdCopyImage-srcImage-01548 (15 tests): agc_driver_depth_clear_hle, agc_driver_depth_plane_buffer_memory, agc_driver_depth_plane_cpu_write_after_memo, agc_driver_depth_plane_cpu_write_after_page_unwatch, agc_driver_depth_plane_cpu_write_after_partial_unwatch, agc_driver_depth_plane_partial_store, agc_driver_depth_plane_partial_store_image_copy, agc_driver_depth_plane_partial_store_unimported, and 7 more
VUID-vkCmdCopyImage-srcImage-01551 (15 tests): agc_driver_depth_clear_hle, agc_driver_depth_plane_buffer_memory, agc_driver_depth_plane_cpu_write_after_memo, agc_driver_depth_plane_cpu_write_after_page_unwatch, agc_driver_depth_plane_cpu_write_after_partial_unwatch, agc_driver_depth_plane_partial_store, agc_driver_depth_plane_partial_store_image_copy, agc_driver_depth_plane_partial_store_unimported, and 7 more
VUID-VkShaderModuleCreateInfo-pCode-08737 (14 tests): agc_driver_dpp16_operands, agc_driver_dpp8_pk_fmac, agc_driver_dx10_clamp, agc_driver_f16_fma_denormal_modes, agc_driver_f16_fma_invalid_nan, agc_driver_float16_fma_rounding, agc_driver_float16_modifiers, agc_driver_float16_native, and 6 more
VUID-VkShaderModuleCreateInfo-pCode-08739 (14 tests): agc_driver_dpp16_operands, agc_driver_dpp8_pk_fmac, agc_driver_dx10_clamp, agc_driver_f16_fma_denormal_modes, agc_driver_f16_fma_invalid_nan, agc_driver_float16_fma_rounding, agc_driver_float16_modifiers, agc_driver_float16_native, and 6 more
VUID-VkShaderModuleCreateInfo-pCode-08741 (14 tests): agc_driver_dpp16_operands, agc_driver_dpp8_pk_fmac, agc_driver_dx10_clamp, agc_driver_f16_fma_denormal_modes, agc_driver_f16_fma_invalid_nan, agc_driver_float16_fma_rounding, agc_driver_float16_modifiers, agc_driver_float16_native, and 6 more
VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-00605 (2 tests): agc_driver_prepared_exports, agc_driver_srgb8_color_target
VUID-VkPipelineShaderStageCreateInfo-module-parameter (1 test): agc_driver_float16_unused_nan_payloads
VUID-VkPipelineShaderStageCreateInfo-pSpecializationInfo-06849 (1 test): agc_driver_float16_unused_nan_payloads
Skipped (59)
agc_driver_bda_reads_shadowed_results: skipped, the device reports watched host memory written when it imports or reads it
agc_driver_bda_reads_shadowed_results_per_build: skipped, the device reports watched host memory written when it imports or reads it
agc_driver_gcn_display_present: skipped, no display: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
agc_driver_msaa_dcc_compared_import_2: skipped, the device reports host imports that keep write protection, so the write-watch probe compares none of them
agc_driver_msaa_dcc_compared_import_4: skipped, the device reports host imports that keep write protection, so the write-watch probe compares none of them
agc_driver_msaa_dcc_compared_import_8: skipped, the device reports host imports that keep write protection, so the write-watch probe compares none of them
agc_driver_sample_order_grid_reference: skipped, the device does not keep depth drawn at custom sample locations at those locations, even after a transition that names them: the composite of uniform renders holds the guest's depth in 0 of 3005 sloped samples, so no path can be compared with it bit for bit
agc_driver_scattered_runs: skipped, host imports are unavailable: /dev/udmabuf is not accessible
agc_driver_sparse_dma_buf_import: skipped, host imports are unavailable: /dev/udmabuf is not accessible
agc_driver_stencil_ref_export: skipped, the device lacks VK_EXT_shader_stencil_export
agc_driver_vertex_elected_atomic_max: skipped, the device runs vertex programs in subgroups, so they keep their cross-lane reductions
agc_host_import_sparse: skipped, host imports are unavailable: /dev/udmabuf is not accessible
agc_import_settle_initial_dcc: skipped, the device has no deferred settle of host imports: imports under 1 MiB wait for one only on Windows
agc_unit_shadow_completion_store: skipped, the device reports watched host memory written when it imports or reads it
guest_http_uri_locale: 
guest_net_ctl: skipped, the host has no IPv4 address
guest_video_out_color_space: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_hdr: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_high_frame_rate: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_host_resolution_disabled: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_host_resolution_four_k: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_host_resolution_height_only: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_host_resolution_limit: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_host_resolution_malformed: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_host_resolution_width_only: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_output_mode: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_resolution_status: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_wqhd_detection: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
video_out_flip_aftergpu: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current 
Reproduce
git fetch origin 4b21d14f2021518cc3ff6c1ff7c2b06ced6ce312 acac7c854182a1674162f5e623aa25a6469985ae
git checkout acac7c854182a1674162f5e623aa25a6469985ae && git merge --no-ff 4b21d14f2021518cc3ff6c1ff7c2b06ced6ce312
git submodule update --init --recursive
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON -DANYPS5_ENABLE_SPIRV_TOOLS=ON
cmake --build build && cmake --build build --target libs
VK_DRIVER_FILES=/nonexistent/icd.json ctest --test-dir build -E '^(agc|shader|recompiler|videoout|video_out|guest_video_out|vulkan)|gpu' --timeout 120 --parallel 32 --output-on-failure
ANYPS5_REQUIRE_VULKAN=1 ANYPS5_NO_SHADER_CACHE=1 VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation \
  ctest --test-dir build -R '^(agc|shader|recompiler|videoout|video_out|guest_video_out|vulkan)|gpu' --timeout 120 --parallel 4 --output-on-failure
# failures are then re-run alone: --timeout 360 --parallel 2; new validation IDs: the test alone, twice, --parallel 1

Automated build and test on a contributor's NVIDIA machine; it does not replace upstream CI. A new comment is posted for each new push. Full logs.

@github-actions github-actions Bot added the needs rebase Conflicts with main, rebase needed label Nov 5, 2026
@TechLevelZero

Copy link
Copy Markdown
Contributor

✅ AMD GPU test: passed

PR head 4b21d14 merged onto main 4639eff · tested 2026-11-05 10:55 UTC · 26 min

GPU AMD Radeon RX 6300 (RADV NAVI24), driver Mesa 25.2.8-0ubuntu0.24.04.4, Vulkan 1.4.318
Host Ubuntu 26.04.1 LTS, kernel 7.0.0-42-generic, container ubuntu:24.04
Logs build and test logs for this run
Build ✅ passed (Release, -DANYPS5_ENABLE_SPIRV_TOOLS=ON)
Tests ✅ 3,878 passed · 15 failed (0 new, 11 also fail on main, 4 unstable on main) · 70 skipped (ANYPS5_REQUIRE_VULKAN=1)
Test setup CPU-only tests without a GPU; GPU tests (and any CPU-only test that failed or skipped without one) once on the GPU with VK_LAYER_KHRONOS_validation and ANYPS5_NO_SHADER_CACHE=1; main ran the same way
Vulkan validation ✅ no new validation IDs vs main (1414 tests run on the GPU)
Slow tests (>30 s, GPU tests timed with validation layers) ⚠️ agc_driver_pipeline_journal 120.5 s, ⚠️ agc_driver_graphics_maps_fallback 117.9 s, ⚠️ agc_driver_graphics 115.6 s, ⚠️ public_headers 80.2 s, ⚠️ agc_driver_bda_device 54.9 s
Unstable on main (4, these also failed in recent main runs on this machine; not counted against this PR)
agc_driver_alpha_to_coverage_sample_mask_export: failed in 6 of the last 10 main runs
agc_driver_job_manager_compute_capacity: failed in 8 of the last 10 main runs
agc_driver_pipeline_journal: failed in 9 of the last 10 main runs
agc_driver_two_sample_alpha_to_coverage_sample_mask_export: failed in 4 of the last 10 main runs
Failing on main too (11, not counted against this PR)
agc_driver_guest_memory_lifetime_direct
agc_driver_image_table
agc_driver_native_depth_bda_clear
agc_driver_native_depth_buffer_clear
agc_driver_native_depth_clears
agc_driver_native_multisample_depth
agc_driver_submit_progress
agc_submit_progress
agc_submit_progress_no_timeline
guest_mmap_executable
guest_socket_options_multicast
Validation IDs already present on main (4 IDs in 812 tests)
VUID-VkDeviceCreateInfo-pNext-pNext (812 tests): agc_compute_pipeline_replay, agc_driver, agc_driver_address_draw_space_reuse, agc_driver_address_draw_space_reuse_held, agc_driver_address_draw_space_reuse_off, agc_driver_address_draw_space_reuse_transitions, agc_driver_address_draw_space_reuse_verify, agc_driver_address_passes, and 804 more
VUID-vkCmdCopyImage-srcImage-01548 (11 tests): agc_driver_depth_clear_hle, agc_driver_depth_plane_cpu_write_after_memo, agc_driver_depth_plane_cpu_write_after_page_unwatch, agc_driver_depth_plane_cpu_write_after_partial_unwatch, agc_driver_depth_plane_partial_store_image_copy, agc_driver_depth_plane_partial_store_unimported, agc_driver_depth_plane_partially_unmapped_plane, agc_driver_depth_plane_unmapped_plane, and 3 more
VUID-vkCmdCopyImage-srcImage-01551 (11 tests): agc_driver_depth_clear_hle, agc_driver_depth_plane_cpu_write_after_memo, agc_driver_depth_plane_cpu_write_after_page_unwatch, agc_driver_depth_plane_cpu_write_after_partial_unwatch, agc_driver_depth_plane_partial_store_image_copy, agc_driver_depth_plane_partial_store_unimported, agc_driver_depth_plane_partially_unmapped_plane, agc_driver_depth_plane_unmapped_plane, and 3 more
VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-00605 (2 tests): agc_driver_prepared_exports, agc_driver_srgb8_color_target
Skipped (70)
agc_driver_bda_reads_shadowed_results: skipped, the device reports watched host memory written when it imports or reads it
agc_driver_bda_reads_shadowed_results_per_build: skipped, the device reports watched host memory written when it imports or reads it
agc_driver_copied_writer_label_order: skipped, the device reports a minStorageBufferOffsetAlignment of 4, so the dispatch binds its record at +0x1004 in place and nothing is written back; the test needs an alignment above 4
agc_driver_copied_writer_label_order_drain: skipped, the device reports a minStorageBufferOffsetAlignment of 4, so the dispatch binds its record at +0x1004 in place and nothing is written back; the test needs an alignment above 4
agc_driver_float16_unused_nan_payloads: skipped, the device has no native f16 conversions with RTE rounding and kept f16 denormals
agc_driver_gcn_display_present: skipped, no display: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
agc_driver_image_table_vouched_lookups: skipped, the device reports 4 of 4 host-imported pages written after a GPU read, so a watched imported table cannot be vouched for
agc_driver_linear_target_direct_write_completion: skipped, the device does not keep host imports write-watched, so no completion stamp over the target is tracked
agc_driver_ngg_vertex_wave_reduction: skipped, s3 describes a 32-lane wave only on 32-lane subgroups, and the device has 64 lanes
agc_driver_recorded_draw_staging: skipped, the device does not keep host imports write-watched, so the target is never resident
agc_driver_scattered_runs: skipped, host imports are unavailable: /dev/udmabuf is not accessible
agc_driver_sparse_dma_buf_import: skipped, host imports are unavailable: /dev/udmabuf is not accessible
agc_driver_unit_shadow: skipped, the device does not import watched host memory for unit shadows
agc_driver_unit_shadow_budget: skipped, the device does not import watched host memory for unit shadows
agc_driver_vertex_elected_atomic_max: skipped, the device runs vertex programs in subgroups, so they keep their cross-lane reductions
agc_host_import_sparse: skipped, host imports are unavailable: /dev/udmabuf is not accessible
agc_idle_publish_wait: skipped, the device reports 4 of 4 host-imported pages written after a GPU read, so a forced watch of the import reads its submissions as CPU stores
agc_import_settle_initial_dcc: skipped, the device has no deferred settle of host imports: imports under 1 MiB wait for one only on Windows
agc_shadowed_key_stores: skipped, the device imports no watched host memory under a unit shadow
agc_small_tiled_shadow_label: skipped, host imports are unavailable: the test block is not imported and watched
agc_storage_clear_hand_over: skipped, the device imports no watched host memory for the clear-key hand-over
agc_storage_pending_key_refresh: skipped, refreshes over a pending key store are not testable here
agc_unit_shadow: skipped, the device does not import watched host memory for unit shadows
agc_unit_shadow_completion_store: skipped, the device reports watched host memory written when it imports or reads it
guest_http_uri_locale: 
guest_net_ctl: skipped, the host has no IPv4 address
guest_net_ctl_disconnected: skipped, the host has no IPv4 address
guest_video_out_color_space: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_hdr: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_high_frame_rate: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_host_resolution_disabled: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_host_resolution_four_k: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECO
Reproduce
git fetch origin 4b21d14f2021518cc3ff6c1ff7c2b06ced6ce312 4639eff7f4c23325a916875a0e37f1e312fa18f4
git checkout 4639eff7f4c23325a916875a0e37f1e312fa18f4 && git merge --no-ff 4b21d14f2021518cc3ff6c1ff7c2b06ced6ce312
git submodule update --init --recursive
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON -DANYPS5_ENABLE_SPIRV_TOOLS=ON
cmake --build build && cmake --build build --target libs
VK_DRIVER_FILES=/nonexistent/icd.json ctest --test-dir build -E '^(agc|shader|recompiler|videoout|video_out|guest_video_out|vulkan)|gpu' --timeout 120 --parallel 12 --output-on-failure
ANYPS5_REQUIRE_VULKAN=1 ANYPS5_NO_SHADER_CACHE=1 VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation \
  ctest --test-dir build -R '^(agc|shader|recompiler|videoout|video_out|guest_video_out|vulkan)|gpu' --timeout 120 --parallel 16 --output-on-failure
# failures are then re-run alone: --timeout 360 --parallel 2; new validation IDs: the test alone, twice, --parallel 1

Automated build and test on a contributor's AMD machine; it does not replace upstream CI. A new comment is posted for each new push. Full logs.

@TechLevelZero

Copy link
Copy Markdown
Contributor

❌ NVIDIA GPU test: failed

PR head 48368e2 merged onto main 080dbd0 · tested 2026-11-05 18:52 UTC · 41 min

GPU NVIDIA RTX 2000 Ada Generation, driver 595.99.02, Vulkan 1.4.329
Host Ubuntu 26.04.1 LTS, kernel 7.0.0-38-generic, container ubuntu:24.04
Logs build and test logs for this run
Build ✅ passed (Release, -DANYPS5_ENABLE_SPIRV_TOOLS=ON)
Tests ❌ 4,010 passed · 7 failed (1 new: 1 not compared, 3 also fail on main, 3 unstable on main) · 61 skipped (ANYPS5_REQUIRE_VULKAN=1)
Test setup CPU-only tests without a GPU; GPU tests (and any CPU-only test that failed or skipped without one) once on the GPU with VK_LAYER_KHRONOS_validation and ANYPS5_NO_SHADER_CACHE=1; main ran the same way
Vulkan validation ✅ no new validation IDs vs main (1417 tests run on the GPU)
Slow tests (>30 s, GPU tests timed with validation layers) ⚠️ agc_driver_pipeline_journal 120.1 s, ⚠️ agc_driver_bda_device 60.2 s, ⚠️ agc_driver_graphics_maps_fallback 43.2 s, ⚠️ agc_driver_graphics 41.9 s, ⚠️ agc_graphics_profile_draw 36.7 s

Failing tests

This PR changes test files, so each failing test was also built and run on main with only the PR's test changes applied. ✅ there means the failure comes from the PR's other changes; ❌ means the test fails on main too, so this run does not show the PR caused it.

Test With this PR Same test on main 080dbd0 (main + this PR's test changes only)
agc_driver_submit_progress ❌ failed not compared: the PR's tests do not build without its other changes
agc_driver_submit_progress: Failed (also failed when re-run alone), assertion and diagnostics
ctest: Failed

[write-watch] host imports resolve write protection: no (0 of 4 scratch pages written after a GPU read, 0 after a GPU write, 4 after the import); imported ranges stay watched
[write-watch] host imports resolve write protection: no (0 of 4 scratch pages written after a GPU read, 0 after a GPU write, 4 after the import); imported ranges stay watched
submission lost its real GPU completion store
[Shaders/ShaderRegistry.cpp:901 ReportPreparedAtUse] Compute shader 0x5fab58af9100 was not registered; preparing its artifact at dispatch
Unstable on main (3, these also failed in recent main runs on this machine; not counted against this PR)
agc_driver_pipeline_journal: failed in 2 of the last 10 main runs
agc_submit_progress: failed in 1 of the last 10 main runs
agc_submit_progress_no_timeline: failed in 1 of the last 10 main runs
Failing on main too (3, not counted against this PR)
agc_driver_image_table
guest_mmap_executable
guest_socket_options_multicast
Passed on retry (1, failed in the parallel run, passed when re-run with a 360 s timeout; not counted against this PR)
agc_driver_job_manager_compute_capacity: Failed in the parallel run; also passed only on retry in 178 other runs in the last 7 days
Validation IDs already present on main (9 IDs in 812 tests)
VUID-VkDeviceCreateInfo-pNext-pNext (812 tests): agc_compute_pipeline_replay, agc_driver, agc_driver_address_draw_space_reuse, agc_driver_address_draw_space_reuse_held, agc_driver_address_draw_space_reuse_off, agc_driver_address_draw_space_reuse_transitions, agc_driver_address_draw_space_reuse_verify, agc_driver_address_passes, and 804 more
VUID-vkCmdCopyImage-srcImage-01548 (15 tests): agc_driver_depth_clear_hle, agc_driver_depth_plane_buffer_memory, agc_driver_depth_plane_cpu_write_after_memo, agc_driver_depth_plane_cpu_write_after_page_unwatch, agc_driver_depth_plane_cpu_write_after_partial_unwatch, agc_driver_depth_plane_partial_store, agc_driver_depth_plane_partial_store_image_copy, agc_driver_depth_plane_partial_store_unimported, and 7 more
VUID-vkCmdCopyImage-srcImage-01551 (15 tests): agc_driver_depth_clear_hle, agc_driver_depth_plane_buffer_memory, agc_driver_depth_plane_cpu_write_after_memo, agc_driver_depth_plane_cpu_write_after_page_unwatch, agc_driver_depth_plane_cpu_write_after_partial_unwatch, agc_driver_depth_plane_partial_store, agc_driver_depth_plane_partial_store_image_copy, agc_driver_depth_plane_partial_store_unimported, and 7 more
VUID-VkShaderModuleCreateInfo-pCode-08737 (14 tests): agc_driver_dpp16_operands, agc_driver_dpp8_pk_fmac, agc_driver_dx10_clamp, agc_driver_f16_fma_denormal_modes, agc_driver_f16_fma_invalid_nan, agc_driver_float16_fma_rounding, agc_driver_float16_modifiers, agc_driver_float16_native, and 6 more
VUID-VkShaderModuleCreateInfo-pCode-08739 (14 tests): agc_driver_dpp16_operands, agc_driver_dpp8_pk_fmac, agc_driver_dx10_clamp, agc_driver_f16_fma_denormal_modes, agc_driver_f16_fma_invalid_nan, agc_driver_float16_fma_rounding, agc_driver_float16_modifiers, agc_driver_float16_native, and 6 more
VUID-VkShaderModuleCreateInfo-pCode-08741 (14 tests): agc_driver_dpp16_operands, agc_driver_dpp8_pk_fmac, agc_driver_dx10_clamp, agc_driver_f16_fma_denormal_modes, agc_driver_f16_fma_invalid_nan, agc_driver_float16_fma_rounding, agc_driver_float16_modifiers, agc_driver_float16_native, and 6 more
VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-00605 (2 tests): agc_driver_prepared_exports, agc_driver_srgb8_color_target
VUID-VkPipelineShaderStageCreateInfo-module-parameter (1 test): agc_driver_float16_unused_nan_payloads
VUID-VkPipelineShaderStageCreateInfo-pSpecializationInfo-06849 (1 test): agc_driver_float16_unused_nan_payloads
Skipped (61)
agc_driver_bda_reads_shadowed_results: skipped, the device reports watched host memory written when it imports or reads it
agc_driver_bda_reads_shadowed_results_per_build: skipped, the device reports watched host memory written when it imports or reads it
agc_driver_gcn_display_present: skipped, no display: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
agc_driver_msaa_dcc_compared_import_2: skipped, the device reports host imports that keep write protection, so the write-watch probe compares none of them
agc_driver_msaa_dcc_compared_import_4: skipped, the device reports host imports that keep write protection, so the write-watch probe compares none of them
agc_driver_msaa_dcc_compared_import_8: skipped, the device reports host imports that keep write protection, so the write-watch probe compares none of them
agc_driver_sample_order_grid_reference: skipped, the device does not keep depth drawn at custom sample locations at those locations, even after a transition that names them: the composite of uniform renders holds the guest's depth in 0 of 3005 sloped samples, so no path can be compared with it bit for bit
agc_driver_scattered_runs: skipped, host imports are unavailable: /dev/udmabuf is not accessible
agc_driver_sparse_dma_buf_import: skipped, host imports are unavailable: /dev/udmabuf is not accessible
agc_driver_stencil_ref_export: skipped, the device lacks VK_EXT_shader_stencil_export
agc_driver_vertex_elected_atomic_max: skipped, the device runs vertex programs in subgroups, so they keep their cross-lane reductions
agc_host_import_sparse: skipped, host imports are unavailable: /dev/udmabuf is not accessible
agc_import_settle_initial_dcc: skipped, the device has no deferred settle of host imports: imports under 1 MiB wait for one only on Windows
agc_unit_shadow_completion_store: skipped, the device reports watched host memory written when it imports or reads it
guest_http_uri_locale: 
guest_net_ctl: skipped, the host has no IPv4 address
guest_net_ctl_disconnected: skipped, the host has no IPv4 address
guest_video_out_color_space: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_device_capability: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_hdr: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_high_frame_rate: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_host_resolution_disabled: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_host_resolution_four_k: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_host_resolution_height_only: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_host_resolution_limit: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_host_resolution_malformed: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_host_resolution_width_only: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_output_mode: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_resolution_status: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_wqhd_detection: skipped, no display or Vulkan device: SDL_InitSubSys
Reproduce
git fetch origin 48368e2743d08db69754e16177852147d5e80db0 080dbd08c6f83be5a1768af7d3342d701bf34d21
git checkout 080dbd08c6f83be5a1768af7d3342d701bf34d21 && git merge --no-ff 48368e2743d08db69754e16177852147d5e80db0
git submodule update --init --recursive
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON -DANYPS5_ENABLE_SPIRV_TOOLS=ON
cmake --build build && cmake --build build --target libs
VK_DRIVER_FILES=/nonexistent/icd.json ctest --test-dir build -E '^(agc|shader|recompiler|videoout|video_out|guest_video_out|vulkan)|gpu' --timeout 120 --parallel 32 --output-on-failure
ANYPS5_REQUIRE_VULKAN=1 ANYPS5_NO_SHADER_CACHE=1 VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation \
  ctest --test-dir build -R '^(agc|shader|recompiler|videoout|video_out|guest_video_out|vulkan)|gpu' --timeout 120 --parallel 4 --output-on-failure
# failures are then re-run alone: --timeout 360 --parallel 2; new validation IDs: the test alone, twice, --parallel 1
# the failing tests, on this merge and on main:
ANYPS5_REQUIRE_VULKAN=1 ANYPS5_NO_SHADER_CACHE=1 VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation \
  ctest --test-dir build -R '^(agc_driver_submit_progress)$' --parallel 1 -V

Automated build and test on a contributor's NVIDIA machine; it does not replace upstream CI. A new comment is posted for each new push. Full logs.

@github-actions github-actions Bot added the needs rebase Conflicts with main, rebase needed label Nov 5, 2026
oberonlift and others added 23 commits November 6, 2026 20:42
Clang rejects a reinterpret_cast from const void* to a function pointer
as casting away qualifiers, so only Apple builds cast the vtable entry to
void* first, and a Clang build on Linux failed to compile libc. Every
build now takes the const_cast form, which GCC compiles the same.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The libraries' lifted-guest code paths were only reachable by
compiling their sources outside this build with the macro defined by
hand, which cannot produce the generated and configured headers that
libSceVideoOut, libSceSsl, libSceVorbisDec, libSceUsbd and
libSceVideodec2 need. The option defines ANYPS5_GUEST_LIFTED for every
target under core/libs, so the libs target builds all 368 libraries for
a lifted guest on an aarch64 host.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The full build always asked ffmpeg-core for the x86-64 package, so in an
aarch64 build every library that links FFmpeg (libSceAjm,
libSceAudiodec, libSceAvPlayer, libSceVideodec2) failed to link. The
architecture now follows CMAKE_SYSTEM_PROCESSOR. A processor with no
package, and MinGW on arm64, which has none either, stop the
configuration.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A lifted build's libraries call the GuestCpu functions that ps5lift's
runtime provides. On Linux they resolved against the executable at load
time; macOS binds every undefined symbol to a named library, so the
libraries have to link the runtime. ANYPS5_LIFTED_RUNTIME names it, and
libc links it publicly, so every library that links libc gets it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Under ANYPS5_GUEST_LIFTED GuestCpu's helpers call GuestCpu*_nid_no_patch
functions, which ps5lift's runtime implements on the guest's emulated
CPU state: the fenv functions, the timestamp counter, cpuid and xgetbv
then see the guest's FPU and the PS5's CPU. The soft-float builtins
compute in the default floating-point environment through <cfenv> and
pick NaN results as x86 does, the 16-byte atomics use
__atomic_compare_exchange_n, Bessel uses std::sqrt and std::fma, and the
x86 call-trace thunks and the setjmp/longjmp assembly are left to the
host runtime, which owns the guest registers. Direct builds are
unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The libraries link ps5lift's runtime, but their RPATH named only their
own directory, so a library that a process loads with dlopen, as some
tests load libc, could not find the runtime. In a lifted build their
RPATH also names the runtime's directory.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The runtime refuses to describe the guest images until the executable
hands it its lifted program, and a test program under core/libs is a
native program with none, so libraries that look up guest images
stopped. In a lifted build the test programs there link an object that
hands the runtime an empty program, and link the runtime.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…arm64

The workflow builds the runtime, configures AnyPS5 with
ANYPS5_GUEST_LIFTED on GitHub's ubuntu-24.04-arm runner and runs the
tests that ps5lift/tests/lifted_tests.txt names on lavapipe:
tools/lifted_tests.py builds the files their commands name and runs
them with ctest. The 101 tests that pass with this change are the ones
whose programs do not link libc, such as the relinker's and the shader
recompiler's.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ForwardExports.cpp defines each forwarded export as an x86 jmp to the
export it aliases, which does not assemble for aarch64. Lifted builds
leave the file out: a lifted guest reaches an export only through an
import bridge generated from its C declaration, and these aliases have
none. The debt file lists the gap.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
In a lifted build the DWARF unwinder starts from the guest frame that
called the import, finds frames through the unwind tables of the guest
images, which dl_iterate_phdr lists through the program's
GuestCpuIterateImages, resolves the personality routine from its import
name and installs a landing pad by handing its registers back to the
guest CPU, through new GuestCpu functions.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
In an ANYPS5_GUEST_LIFTED build the guest images are not host shared
objects, so glibc's dl_iterate_phdr cannot see them: the application heap
never found the executable's process parameters. Every caller now
includes ElfTypes.hpp instead of <link.h>, which in a lifted build lists
the program's guest images through GuestCpuIterateImages.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A lifted build keeps the host's C++ runtime, but with libstdc++ the libc
still defined std::current_exception, std::rethrow_exception and
exception_ptr's members over its own runtime. Host code that caught an
exception then got a null exception_ptr from the runtime that had not
thrown it: the AGC driver reported a failed compute dispatch as "null
asynchronous failure" and terminated. Lifted builds now give the guest
its own exception pointer type, as libc++ builds do, and leave the
host's exception pointers to the host runtime. The guest's
_Result_base destructor export releases the guest pointer in place.

Lifted builds also stop exporting the host ABI's names: Exports.cpp's
__cxa_* and _Unwind_* aliases and Personality.cpp's global
__gxx_personality_v0. A lifted executable loads libc before libstdc++
and libgcc_s, so the host's own throws bound to libc's versions and
aborted.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
In a lifted build every VaList is a SysV va_list built by the guest or
by a bridge, so the libc formats and scans through FormatArguments and
its in-process scanner instead of the host's vprintf and vsscanf. The
libc's own variadic functions wrap the host va_list in a tagged VaList
through the shared APS5_VA_BEGIN macro, which the formatting and
scanning tests now use as well.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A report handler is guest code, which reads the call's arguments through
the x86-64 SysV va_list in the report. The dispatcher copied its own
host va_list there, which is that layout only on an x86-64 host, so a
lifted build for aarch64 did not compile. In lifted builds the report
now carries a SysV va_list built around the call's values: the named
parameters fill every integer register, so the values are its overflow
area, behind an empty register save area.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… builds

sceAudioPropagationReportApi hands its report handlers the call's own
va_list, which is the x86-64 SysV one the guest handler reads only on an
x86-64 host; a lifted build for aarch64 did not compile. In lifted builds
a host caller now stops as not implemented. Guest calls already stop at
the bridge, which has no free integer register and no va_list sibling to
forward them through. The library's test leaves out its report checks,
which read the report's va_list as the host's, in lifted builds and
checks the rejection instead.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add GuestLongDouble to load and store the guest's x87 80-bit values,
so the libc can compute with a host long double that is not x87
extended, such as aarch64's binary128, when built for a lifted guest.
Formatting, scanning, strtold, modfl, _LDtest and the code that takes
80-bit values apart go through it; strtold parses with round-to-odd
so that the final rounding is correct, and long double arguments that
host callers pass through a va_list are rounded to the guest's precision.
On an x87 host it only copies.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A lifted libc held the guest's x87 long double in the host's long double:
IEEE binary128 on Linux, which holds every 80-bit value but rounds each
step differently, and a plain double on macOS, which holds neither.

Lifted builds now keep it in GuestLongDouble, laid out as the guest stores
it. Its arithmetic, square root, integer rounding and conversions to
double, float and integers run through the ps5lift runtime's x87, so they
round, honour precision control and raise exceptions as the guest's
control and status words say. Comparisons, conversions from integers and
doubles, frexp, scalbn, fmod, remainder, remquo, modf, logb and the
fixed-direction roundings work on the bits. strtold and scanf("%Lf") parse
with exact big-integer arithmetic, correctly rounded in the guest's
rounding mode; the narrow scanner reads the field itself, with the wide
scanner's FloatFit, now shared. printf already formatted the exact digits.

On an x86-64 host with x87 behind the runtime's entry points, the parser
matched glibc's x87 strtold in 58,244 cases across the four rounding
modes, and the bit operations matched x87 libm in 5.6 million.

The transcendental l functions and fmal still compute in the host's
widest type and round the result, which on macOS keeps 53 bits; the debt
entry says so. long double complex results are left out of lifted builds,
where they were never bridged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Call guest thread entries and exception handlers through GuestCpu, and
leave out the x86 assembly for sigsetjmp, siglongjmp, getcontext and their
kin in lifted builds, where the runtime provides the jumps and context
switching reports itself as not implemented. A handler raised on a lifted
thread sees the guest registers of the thread's last call.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The bridge already turns the guest entry point into a native thunk, so
a lifted build calls it directly instead of through a GuestCpu call.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A lifted thread's guest frames lived on ps5lift's fixed 8 MiB stack
while scePthreadCreate sized the host stack, which holds the lifted
frames, from the guest's request and reported part of it as the
thread's stack. The guest stack is now a guarded mapping of the size
the guest asked for, which the thread hands to the runtime through
GuestCpuUseStack before its entry runs and which scePthreadAttrGet
reports, and the host stack is the size GuestCpuHostStackSize gives.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A thread handle is the address of its PthreadPrivate, which came from
the host heap. On the console it is the address of the thread's
structure in the process's own memory. On an aarch64 host the host
heap lies at 0xaaaa... and 0xffff..., outside anything the guest can
address, and a library that prints a handle with %p and reads it back
with base 0 saw a leading hex letter and threw where the console's
handle starts with a digit.

In lifted builds PthreadPrivate now comes from the guest heap, so every
handle, those of adopted threads included, is a guest address. Direct
builds keep the host heap.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ps5lift loads from a lifted image's read-only segments without ordering,
which holds only while nothing writes them. In lifted builds DoMprotect
reports the pages each protection change makes writable to
GuestCpuMakingWritable_nid_no_patch, and the runtime stops the program
when they overlap such a segment. A MAP_FIXED mapping over such a
segment is not reported; the libkernel debt notes record it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions github-actions Bot removed the needs rebase Conflicts with main, rebase needed label Nov 6, 2026
@TechLevelZero

Copy link
Copy Markdown
Contributor

✅ NVIDIA GPU test: passed

PR head 2190ab5 merged onto main 9fb6149 · tested 2026-11-06 21:05 UTC · 49 min

GPU NVIDIA RTX 2000 Ada Generation, driver 595.99.02, Vulkan 1.4.329
Host Ubuntu 26.04.1 LTS, kernel 7.0.0-38-generic, container ubuntu:24.04
Logs build and test logs for this run
Build ✅ passed (Release, -DANYPS5_ENABLE_SPIRV_TOOLS=ON)
Tests ✅ 4,171 passed · 4 failed (0 new, 3 also fail on main, 1 unstable on main) · 61 skipped (ANYPS5_REQUIRE_VULKAN=1)
Test setup CPU-only tests without a GPU; GPU tests (and any CPU-only test that failed or skipped without one) once on the GPU with VK_LAYER_KHRONOS_validation and ANYPS5_NO_SHADER_CACHE=1; main ran the same way
Vulkan validation ✅ no new validation IDs vs main (1444 tests run on the GPU)
Slow tests (>30 s, GPU tests timed with validation layers) ⚠️ agc_driver_pipeline_journal 120.3 s, ⚠️ agc_driver_bda_device 46.8 s, ⚠️ agc_driver_lazy_resolved_abi 37.7 s, ⚠️ agc_driver_graphics_maps_fallback 30.7 s, ⚠️ agc_driver_graphics 30.4 s
Unstable on main (1, these also failed in recent main runs on this machine; not counted against this PR)
agc_driver_pipeline_journal: failed in 1 of the last 10 main runs
Failing on main too (3, not counted against this PR)
agc_driver_image_table
guest_mmap_executable
guest_socket_options_multicast
Validation IDs already present on main (9 IDs in 825 tests)
VUID-VkDeviceCreateInfo-pNext-pNext (825 tests): agc_compute_pipeline_replay, agc_driver, agc_driver_address_draw_space_reuse, agc_driver_address_draw_space_reuse_held, agc_driver_address_draw_space_reuse_off, agc_driver_address_draw_space_reuse_transitions, agc_driver_address_draw_space_reuse_verify, agc_driver_address_passes, and 817 more
VUID-vkCmdCopyImage-srcImage-01548 (15 tests): agc_driver_depth_clear_hle, agc_driver_depth_plane_buffer_memory, agc_driver_depth_plane_cpu_write_after_memo, agc_driver_depth_plane_cpu_write_after_page_unwatch, agc_driver_depth_plane_cpu_write_after_partial_unwatch, agc_driver_depth_plane_partial_store, agc_driver_depth_plane_partial_store_image_copy, agc_driver_depth_plane_partial_store_unimported, and 7 more
VUID-vkCmdCopyImage-srcImage-01551 (15 tests): agc_driver_depth_clear_hle, agc_driver_depth_plane_buffer_memory, agc_driver_depth_plane_cpu_write_after_memo, agc_driver_depth_plane_cpu_write_after_page_unwatch, agc_driver_depth_plane_cpu_write_after_partial_unwatch, agc_driver_depth_plane_partial_store, agc_driver_depth_plane_partial_store_image_copy, agc_driver_depth_plane_partial_store_unimported, and 7 more
VUID-VkShaderModuleCreateInfo-pCode-08737 (14 tests): agc_driver_dpp16_operands, agc_driver_dpp8_pk_fmac, agc_driver_dx10_clamp, agc_driver_f16_fma_denormal_modes, agc_driver_f16_fma_invalid_nan, agc_driver_float16_fma_rounding, agc_driver_float16_modifiers, agc_driver_float16_native, and 6 more
VUID-VkShaderModuleCreateInfo-pCode-08739 (14 tests): agc_driver_dpp16_operands, agc_driver_dpp8_pk_fmac, agc_driver_dx10_clamp, agc_driver_f16_fma_denormal_modes, agc_driver_f16_fma_invalid_nan, agc_driver_float16_fma_rounding, agc_driver_float16_modifiers, agc_driver_float16_native, and 6 more
VUID-VkShaderModuleCreateInfo-pCode-08741 (14 tests): agc_driver_dpp16_operands, agc_driver_dpp8_pk_fmac, agc_driver_dx10_clamp, agc_driver_f16_fma_denormal_modes, agc_driver_f16_fma_invalid_nan, agc_driver_float16_fma_rounding, agc_driver_float16_modifiers, agc_driver_float16_native, and 6 more
VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-00605 (2 tests): agc_driver_prepared_exports, agc_driver_srgb8_color_target
VUID-VkPipelineShaderStageCreateInfo-module-parameter (1 test): agc_driver_float16_unused_nan_payloads
VUID-VkPipelineShaderStageCreateInfo-pSpecializationInfo-06849 (1 test): agc_driver_float16_unused_nan_payloads
Skipped (61)
agc_driver_bda_reads_shadowed_results: skipped, the device reports watched host memory written when it imports or reads it
agc_driver_bda_reads_shadowed_results_per_build: skipped, the device reports watched host memory written when it imports or reads it
agc_driver_gcn_display_present: skipped, no display: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
agc_driver_msaa_dcc_compared_import_2: skipped, the device reports host imports that keep write protection, so the write-watch probe compares none of them
agc_driver_msaa_dcc_compared_import_4: skipped, the device reports host imports that keep write protection, so the write-watch probe compares none of them
agc_driver_msaa_dcc_compared_import_8: skipped, the device reports host imports that keep write protection, so the write-watch probe compares none of them
agc_driver_sample_order_grid_reference: skipped, the device does not keep depth drawn at custom sample locations at those locations, even after a transition that names them: the composite of uniform renders holds the guest's depth in 0 of 3005 sloped samples, so no path can be compared with it bit for bit
agc_driver_scattered_runs: skipped, host imports are unavailable: /dev/udmabuf is not accessible
agc_driver_sparse_dma_buf_import: skipped, host imports are unavailable: /dev/udmabuf is not accessible
agc_driver_stencil_ref_export: skipped, the device lacks VK_EXT_shader_stencil_export
agc_driver_vertex_elected_atomic_max: skipped, the device runs vertex programs in subgroups, so they keep their cross-lane reductions
agc_host_import_sparse: skipped, host imports are unavailable: /dev/udmabuf is not accessible
agc_import_settle_initial_dcc: skipped, the device has no deferred settle of host imports: imports under 1 MiB wait for one only on Windows
agc_unit_shadow_completion_store: skipped, the device reports watched host memory written when it imports or reads it
guest_http_uri_locale: 
guest_net_ctl: skipped, the host has no IPv4 address
guest_net_ctl_disconnected: skipped, the host has no IPv4 address
guest_video_out_color_space: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_device_capability: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_hdr: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_high_frame_rate: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_host_resolution_disabled: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_host_resolution_four_k: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_host_resolution_height_only: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_host_resolution_limit: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_host_resolution_malformed: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_host_resolution_width_only: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_output_mode: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_resolution_status: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_wqhd_detection: skipped, no display or Vulkan device: SDL_InitSubSys
Reproduce
git fetch origin 2190ab563e4723ed13c932544af01f414ebac7fd 9fb6149d12d51e8dc769943c828f2f23635acb4d
git checkout 9fb6149d12d51e8dc769943c828f2f23635acb4d && git merge --no-ff 2190ab563e4723ed13c932544af01f414ebac7fd
git submodule update --init --recursive
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON -DANYPS5_ENABLE_SPIRV_TOOLS=ON
cmake --build build && cmake --build build --target libs
VK_DRIVER_FILES=/nonexistent/icd.json ctest --test-dir build -E '^(agc|shader|recompiler|videoout|video_out|guest_video_out|vulkan)|gpu' --timeout 120 --parallel 32 --output-on-failure
ANYPS5_REQUIRE_VULKAN=1 ANYPS5_NO_SHADER_CACHE=1 VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation \
  ctest --test-dir build -R '^(agc|shader|recompiler|videoout|video_out|guest_video_out|vulkan)|gpu' --timeout 120 --parallel 4 --output-on-failure
# failures are then re-run alone: --timeout 360 --parallel 2; new validation IDs: the test alone, twice, --parallel 1

Automated build and test on a contributor's NVIDIA machine; it does not replace upstream CI. A new comment is posted for each new push. Full logs.

@github-actions

github-actions Bot commented Nov 7, 2026 •

Copy link
Copy Markdown

Other open pull requests touch the same code. Merging one will break the other, or both implement the same thing. If this one builds on them, list them in Depends on.

Pull request Conflicting files (lines on main) Same exports Same new files
PR 11262 atanl
PR 11266 atanl
exp2l
PR 12622 sprintf_s

Exports with a name or library/NID already present in main:

  • _ZNSt13__future_base12_Result_baseD2Ev (same library/NID already present: core/libs/prx/libc (3714FOrFZdg))
  • fscanf (same library/NID already present: core/libs/prx/libc (npLpPTaSuHg))
  • libc_printf (same library/NID already present: core/libs/prx/libc (vwxjq3fFviE))
  • llrint (same library/NID already present: core/libs/prx/libc (-431A-YBAks))
  • llrintf (same library/NID already present: core/libs/prx/libc (KPsQA0pis8o))
  • lrint (same library/NID already present: core/libs/prx/libc (VOKOgR7L-2Y))
  • lrintf (same library/NID already present: core/libs/prx/libc (rcVv5ivMhY0))
  • printf (same library/NID already present: core/libs/prx/libc (hcuQgD53UxM))
  • printf_s (same library/NID already present: core/libs/prx/libc (w1NxRBQqfmQ))
  • snprintf (same library/NID already present: core/libs/prx/libc (eLdDw6l0-bU))
  • snprintf_s (same library/NID already present: core/libs/prx/libc (3BytPOQgVKc))
  • sprintf (same library/NID already present: core/libs/prx/libc (tcVi5SivF7Q))
  • sprintf_s (same library/NID already present: core/libs/prx/libc (xEszJVGpybs))
  • sscanf_s (same library/NID already present: core/libs/prx/libc (24m4Z4bUaoY))

Some comparisons could not be completed because a pull request conflicts with the base branch. Review these shared files manually before concluding that there is no overlap.

Pull request Shared files not compared
PR 907 docs/dev/TechnicalDebt.md
PR 1368 docs/dev/TechnicalDebt.md
PR 1384 docs/dev/TechnicalDebt.md
PR 1395 docs/dev/TechnicalDebt.md
PR 1601 docs/dev/TechnicalDebt.md
PR 1835 .gitmodules
CMakeLists.txt
core/libs/prx/libc/src/GuestAllocations.cpp
docs/dev/TechnicalDebt.md
PR 3965 core/libs/prx/libc/CMakeLists.txt
docs/dev/debt/libc.md
PR 4448 core/libs/prx/libSceAgcDriver/Execution/src/GuestMemory.cpp
PR 4563 core/libs/prx/libkernel/Pthread/include/Pthread.hpp
core/libs/prx/libkernel/Pthread/src/Thread.cpp
PR 4630 core/libs/prx/libkernel/System/src/Exception.cpp
docs/dev/debt/libkernel.md
PR 5021 .gitmodules
CMakeLists.txt
core/libs/CMakeLists.txt
core/libs/prx/libSceAgcDriver/Execution/src/Driver/Synchronization/WaitMemory.cpp
core/libs/prx/libSceAgcDriver/Execution/src/GuestMemory.cpp
core/libs/prx/libc/CMakeLists.txt
core/libs/prx/libc/include/WindowsFormatting.hpp
core/libs/prx/libc/src/GuestAllocations.cpp
core/libs/prx/libc/src/JumpBuffer.cpp
core/libs/prx/libc/src/Strings.cpp
core/libs/prx/libkernel/DirectMemory/DirectMemory.cpp
core/libs/prx/libkernel/Module/src/ModuleInfo.cpp
core/libs/prx/libkernel/Pthread/include/Pthread.hpp
core/libs/prx/libkernel/Pthread/src/Thread.cpp
core/libs/prx/libkernel/System/src/Exception.cpp
core/libs/prx/libkernel/System/src/SignalSets.cpp
core/libs/prx/libkernel/Time/Time.cpp
core/libs/tests/Formatting.cpp
docs/dev/TechnicalDebt.md
docs/dev/debt/libc.md
docs/dev/debt/libkernel.md
PR 5303 core/libs/prx/libc/src/FormattingWide.cpp
core/libs/tests/GuestWideFormatting.cpp
docs/dev/debt/libc.md
PR 6084 core/libs/prx/libc/CMakeLists.txt
core/libs/prx/libc/include/Api.hpp
PR 6149 docs/dev/debt/libkernel.md
PR 6186 core/libs/prx/libSceAgcDriver/Execution/src/GuestMemory.cpp
PR 6187 core/libs/prx/libSceAgcDriver/Execution/src/GuestMemory.cpp
PR 6188 core/libs/prx/libSceAgcDriver/Execution/src/GuestMemory.cpp
PR 6192 core/libs/prx/libSceAgcDriver/Execution/src/GuestMemory.cpp
PR 6209 core/libs/prx/libSceAgcDriver/Execution/src/GuestMemory.cpp
PR 6295 core/libs/prx/libc/src/Math.cpp
PR 6740 core/libs/prx/libkernel/Pthread/include/Pthread.hpp
docs/dev/debt/libkernel.md
PR 6819 core/libs/prx/libc/CMakeLists.txt
core/libs/prx/libc/src/exception/Unwind.cpp
docs/dev/debt/libc.md
PR 6926 core/libs/prx/libSceAgcDriver/Execution/src/GuestMemory.cpp
PR 6936 docs/dev/debt/libkernel.md
PR 7081 core/libs/prx/libc/CMakeLists.txt
docs/dev/debt/libc.md
PR 7088 docs/dev/debt/libkernel.md
PR 7105 core/libs/prx/libkernel/DirectMemory/DirectMemory.cpp
docs/dev/debt/libkernel.md
PR 7121 docs/dev/debt/libkernel.md
PR 7135 docs/dev/debt/libkernel.md
PR 7149 core/libs/prx/libkernel/DirectMemory/DirectMemory.cpp
core/libs/prx/libkernel/Pthread/include/Pthread.hpp
core/libs/prx/libkernel/Pthread/src/Thread.cpp
docs/dev/debt/libkernel.md
PR 7275 core/libs/CMakeLists.txt
PR 7386 core/libs/prx/libc/src/Formatting.cpp
core/libs/tests/Formatting.cpp
core/libs/tests/GuestStdioVariadic.cpp
docs/dev/debt/libc.md
PR 7447 core/libs/prx/libc/CMakeLists.txt
docs/dev/debt/libc.md
docs/dev/debt/libkernel.md
PR 7464 docs/dev/debt/libkernel.md
PR 7544 core/libs/prx/libc/src/Math.cpp
docs/dev/debt/libc.md
PR 7565 core/libs/prx/libkernel/Pthread/include/Pthread.hpp
core/libs/prx/libkernel/Pthread/src/Thread.cpp
docs/dev/debt/libkernel.md
PR 7604 core/libs/prx/libSceAgcDriver/Execution/src/GuestMemory.cpp
PR 7622 core/libs/CMakeLists.txt
PR 7642 CMakeLists.txt
core/libs/prx/libSceAgcDriver/Execution/src/GuestMemory.cpp
PR 7645 CMakeLists.txt
core/libs/CMakeLists.txt
core/libs/prx/libc/CMakeLists.txt
PR 7715 core/libs/prx/libc/CMakeLists.txt
docs/dev/debt/libc.md
PR 7804 core/libs/prx/libkernel/Pthread/include/Pthread.hpp
core/libs/prx/libkernel/Pthread/src/Thread.cpp
core/libs/prx/libkernel/Time/Time.cpp
docs/dev/debt/libkernel.md
PR 7851 core/libs/prx/libc/CMakeLists.txt
core/libs/prx/libc/include/Api.hpp
docs/dev/debt/libc.md
PR 8041 core/libs/prx/libkernel/Pthread/include/Pthread.hpp
core/libs/prx/libkernel/Pthread/src/Thread.cpp
PR 8043 CMakeLists.txt
PR 8150 core/libs/prx/libc/CMakeLists.txt
docs/dev/debt/libc.md
PR 8417 core/libs/prx/libc/include/Api.hpp
core/libs/prx/libc/src/Math.cpp
docs/dev/debt/libc.md
PR 8497 docs/dev/debt/libkernel.md
PR 8588 CMakeLists.txt
PR 8592 core/libs/prx/libkernel/Pthread/include/Pthread.hpp
core/libs/prx/libkernel/Pthread/src/Thread.cpp
core/libs/prx/libkernel/System/src/Exception.cpp
PR 8605 docs/dev/debt/libkernel.md
PR 8650 core/libs/CMakeLists.txt
PR 8965 core/libs/prx/libc/CMakeLists.txt
core/libs/prx/libc/src/Strings.cpp
docs/dev/debt/libc.md
PR 9087 core/libs/prx/libc/include/WindowsFormatting.hpp
core/libs/prx/libc/src/Formatting.cpp
core/libs/tests/Formatting.cpp
core/libs/tests/GuestStdioVariadic.cpp
docs/dev/debt/libc.md
PR 9156 core/libs/CMakeLists.txt
docs/dev/debt/libkernel.md
PR 9161 core/libs/CMakeLists.txt
PR 9162 core/libs/CMakeLists.txt
PR 9199 docs/dev/debt/libkernel.md
PR 9293 core/libs/CMakeLists.txt
docs/dev/debt/libkernel.md
PR 9297 core/libs/CMakeLists.txt
docs/dev/debt/libkernel.md
PR 9302 core/libs/CMakeLists.txt
docs/dev/debt/libkernel.md
PR 9340 core/libs/prx/libc/src/Formatting.cpp
core/libs/tests/Formatting.cpp
docs/dev/debt/libc.md
PR 9371 docs/dev/debt/libc.md
PR 9383 core/libs/CMakeLists.txt
PR 9389 docs/dev/debt/libkernel.md
PR 9447 docs/dev/debt/libc.md
PR 9466 core/libs/prx/libc/CMakeLists.txt
docs/dev/debt/libc.md
PR 9508 CMakeLists.txt
PR 9526 docs/dev/debt/libc.md
PR 9547 CMakeLists.txt
PR 9557 docs/dev/debt/libkernel.md
PR 9566 docs/dev/debt/libkernel.md
PR 9584 core/libs/prx/libc/CMakeLists.txt
PR 9677 core/libs/prx/libkernel/Time/Time.cpp
docs/dev/debt/libc.md
PR 9684 core/libs/prx/libkernel/Pthread/src/Thread.cpp
docs/dev/debt/libkernel.md
PR 9773 core/libs/prx/libc/CMakeLists.txt
PR 9775 core/libs/prx/libc/CMakeLists.txt
PR 9776 .gitmodules
CMakeLists.txt
PR 9855 .gitmodules
PR 9933 core/libs/CMakeLists.txt
PR 9938 core/libs/prx/libkernel/Pthread/include/Pthread.hpp
core/libs/prx/libkernel/Pthread/src/Thread.cpp
docs/dev/debt/libkernel.md
PR 10002 core/libs/prx/libc/src/Math.cpp
docs/dev/debt/libc.md
PR 10007 core/libs/prx/libc/src/Math.cpp
docs/dev/debt/libc.md
PR 10113 core/libs/prx/libc/src/Math.cpp
docs/dev/debt/libc.md
PR 10192 core/libs/prx/libkernel/DirectMemory/DirectMemory.cpp
docs/dev/debt/libkernel.md
PR 10193 CMakeLists.txt
core/libs/prx/libSceAgcDriver/Execution/src/GuestMemory.cpp
PR 10226 core/libs/prx/libc/src/Math.cpp
docs/dev/debt/libc.md
PR 10249 core/libs/prx/libSceJobManager/Export.cpp
PR 10274 core/libs/prx/libc/src/Math.cpp
docs/dev/debt/libc.md
PR 10321 core/libs/prx/libc/src/Math.cpp
docs/dev/debt/libc.md
PR 10397 core/libs/prx/libc/include/Api.hpp
docs/dev/debt/libc.md
PR 10409 core/libs/tests/GuestWideFormatting.cpp
PR 10442 docs/dev/debt/libkernel.md
PR 10506 core/libs/prx/libc/src/Math.cpp
docs/dev/debt/libc.md
PR 10510 core/libs/prx/libc/src/Math.cpp
docs/dev/debt/libc.md
PR 10512 core/libs/prx/libc/src/Math.cpp
docs/dev/debt/libc.md
PR 10546 core/libs/prx/libc/src/Math.cpp
PR 10558 docs/dev/debt/libkernel.md
PR 10569 docs/dev/debt/libc.md
PR 10645 docs/dev/debt/libkernel.md
PR 10780 core/libs/prx/libc/include/Api.hpp
core/libs/prx/libc/src/MathExact.cpp
docs/dev/debt/libc.md
PR 10897 CMakeLists.txt
PR 10987 core/libs/tests/GuestWideFormatting.cpp
docs/dev/debt/libc.md
PR 11109 core/libs/prx/libc/src/Math.cpp
docs/dev/debt/libc.md
PR 11172 docs/dev/debt/libc.md
PR 11215 docs/dev/debt/libkernel.md
PR 11247 docs/dev/debt/libkernel.md
PR 11262 core/libs/prx/libc/src/Math.cpp
docs/dev/debt/libc.md
PR 11266 core/libs/prx/libc/src/Math.cpp
docs/dev/debt/libc.md
PR 11332 core/libs/prx/libc/include/WindowsFormatting.hpp
core/libs/prx/libc/src/Formatting.cpp
core/libs/tests/Formatting.cpp
docs/dev/debt/libc.md
PR 11421 core/libs/prx/libc/include/Api.hpp
core/libs/prx/libc/src/exception/StandardExceptions.cpp
PR 11625 core/libs/prx/libc/CMakeLists.txt
docs/dev/debt/libc.md
docs/dev/debt/libkernel.md
PR 11628 core/libs/prx/libkernel/System/src/Exception.cpp
docs/dev/debt/libkernel.md
PR 11634 core/libs/prx/libc/src/Math.cpp
docs/dev/debt/libc.md
PR 11661 core/libs/prx/libkernel/System/src/Exception.cpp
docs/dev/debt/libc.md
docs/dev/debt/libkernel.md
PR 11664 core/libs/prx/libc/include/Api.hpp
docs/dev/debt/libc.md
PR 11689 core/libs/prx/libkernel/System/src/Exception.cpp
docs/dev/debt/libc.md
docs/dev/debt/libkernel.md
PR 11698 core/libs/prx/libkernel/System/src/Exception.cpp
docs/dev/debt/libc.md
docs/dev/debt/libkernel.md
PR 11724 core/libs/prx/libc/src/Formatting.cpp
core/libs/tests/GuestWideStreamScan.cpp
docs/dev/debt/libc.md
PR 11726 core/libs/prx/libc/src/Formatting.cpp
core/libs/tests/Formatting.cpp
core/libs/tests/GuestWideStreamScan.cpp
docs/dev/debt/libc.md
PR 11831 core/libs/prx/libc/CMakeLists.txt
core/libs/prx/libc/include/Api.hpp
docs/dev/debt/libc.md
PR 11848 core/libs/prx/libc/include/Api.hpp
docs/dev/debt/libc.md
PR 11870 docs/dev/debt/libc.md
PR 11895 core/libs/prx/libc/src/Math.cpp
docs/dev/debt/libc.md
PR 11896 docs/dev/debt/libkernel.md
PR 11939 docs/dev/debt/libkernel.md
PR 12053 core/libs/prx/libc/src/Math.cpp
docs/dev/debt/libc.md
PR 12057 docs/dev/debt/libc.md
PR 12104 docs/dev/debt/libkernel.md
PR 12130 core/libs/CMakeLists.txt
core/libs/prx/libkernel/Pthread/include/Pthread.hpp
core/libs/prx/libkernel/Pthread/src/Thread.cpp
core/libs/prx/libkernel/System/src/Exception.cpp
core/libs/prx/libkernel/Time/Time.cpp
PR 12157 core/libs/prx/libc/src/GuestAllocations.cpp
PR 12170 docs/dev/debt/libkernel.md
PR 12184 core/libs/prx/libc/include/Api.hpp
docs/dev/debt/libc.md
PR 12406 CMakeLists.txt
PR 12418 core/libs/prx/libkernel/Time/Time.cpp
PR 12452 core/libs/prx/libSceAgcDriver/Execution/src/GuestMemory.cpp
core/libs/prx/libkernel/DirectMemory/DirectMemory.cpp
PR 12497 CMakeLists.txt
PR 12514 core/libs/prx/libc/src/ScanningWide.cpp
docs/dev/debt/libc.md
PR 12518 docs/dev/debt/libc.md
PR 12544 core/libs/prx/libkernel/Pthread/src/Thread.cpp
PR 12558 core/libs/prx/libc/src/Formatting.cpp
core/libs/tests/Formatting.cpp
PR 12574 docs/dev/debt/libc.md
PR 12592 core/libs/prx/libkernel/Time/Time.cpp
docs/dev/debt/libc.md
PR 12593 docs/dev/debt/libc.md
PR 12594 core/libs/prx/libc/src/Strings.cpp
docs/dev/debt/libc.md
PR 12598 docs/dev/debt/libc.md
PR 12605 docs/dev/debt/libc.md
PR 12622 core/libs/prx/libc/include/WindowsFormatting.hpp
core/libs/prx/libc/src/Formatting.cpp
core/libs/tests/Formatting.cpp
core/libs/tests/GuestStdioVariadic.cpp
docs/dev/debt/libc.md
PR 12627 core/libs/prx/libc/src/FormattingWide.cpp
core/libs/tests/GuestWideFormatting.cpp
docs/dev/debt/libc.md
PR 12642 core/libs/CMakeLists.txt
core/libs/prx/libkernel/Pthread/include/Pthread.hpp
core/libs/prx/libkernel/Pthread/src/Thread.cpp
core/libs/prx/libkernel/System/src/Exception.cpp
core/libs/prx/libkernel/Time/Time.cpp
PR 12682 core/libs/prx/libc/CMakeLists.txt
core/libs/prx/libc/include/Api.hpp
core/libs/prx/libc/src/JumpBuffer.cpp
core/libs/prx/libkernel/Pthread/include/Pthread.hpp
core/libs/prx/libkernel/Pthread/src/Thread.cpp
core/libs/prx/libkernel/System/src/Exception.cpp
core/libs/prx/libkernel/System/src/SignalSets.cpp
core/libs/prx/libkernel/System/src/UserContext.cpp
docs/dev/debt/libc.md
docs/dev/debt/libkernel.md
PR 12688 core/libs/prx/libc/CMakeLists.txt
core/libs/prx/libc/include/Api.hpp
core/libs/prx/libc/src/JumpBuffer.cpp
core/libs/prx/libkernel/Pthread/include/Pthread.hpp
core/libs/prx/libkernel/Pthread/src/Thread.cpp
core/libs/prx/libkernel/System/src/Exception.cpp
core/libs/prx/libkernel/System/src/SignalSets.cpp
core/libs/prx/libkernel/System/src/UserContext.cpp
docs/dev/debt/libc.md
docs/dev/debt/libkernel.md
PR 12700 core/libs/prx/libc/CMakeLists.txt
core/libs/prx/libc/include/Api.hpp
core/libs/prx/libc/src/JumpBuffer.cpp
core/libs/prx/libkernel/Pthread/include/Pthread.hpp
core/libs/prx/libkernel/Pthread/src/Thread.cpp
core/libs/prx/libkernel/System/src/Exception.cpp
core/libs/prx/libkernel/System/src/SignalSets.cpp
core/libs/prx/libkernel/System/src/UserContext.cpp
docs/dev/debt/libc.md
docs/dev/debt/libkernel.md
PR 12704 docs/dev/debt/libc.md
PR 12717 core/libs/prx/libc/CMakeLists.txt
PR 12745 core/libs/prx/libSceAgcDriver/Execution/src/GuestMemory.cpp
PR 12766 CMakeLists.txt
PR 12778 core/libs/CMakeLists.txt
PR 12792 core/libs/prx/libSceAgcDriver/Execution/src/GuestMemory.cpp
PR 12840 core/libs/prx/libSceAgcDriver/Execution/src/GuestMemory.cpp
PR 12849 core/libs/prx/libc/CMakeLists.txt
docs/dev/debt/libc.md
PR 12874 CMakeLists.txt
PR 12876 CMakeLists.txt
PR 12878 CMakeLists.txt
PR 12879 CMakeLists.txt
PR 12881 CMakeLists.txt
PR 12920 core/libs/prx/libc/include/Api.hpp
docs/dev/debt/libc.md
PR 12947 core/libs/prx/libc/include/Api.hpp
core/libs/prx/libc/src/FloatBuiltins.cpp
docs/dev/debt/libc.md
PR 12965 core/libs/prx/libc/CMakeLists.txt
core/libs/prx/libc/include/Api.hpp
core/libs/prx/libc/src/JumpBuffer.cpp
core/libs/prx/libkernel/Pthread/include/Pthread.hpp
core/libs/prx/libkernel/Pthread/src/Thread.cpp
core/libs/prx/libkernel/System/src/Exception.cpp
core/libs/prx/libkernel/System/src/SignalSets.cpp
core/libs/prx/libkernel/System/src/UserContext.cpp
docs/dev/debt/libc.md
docs/dev/debt/libkernel.md
PR 12970 docs/dev/debt/libkernel.md
PR 12994 core/libs/CMakeLists.txt
PR 13206 core/libs/CMakeLists.txt
PR 13311 core/libs/prx/libc/CMakeLists.txt
PR 13312 core/libs/prx/libc/CMakeLists.txt
PR 13313 core/libs/prx/libc/CMakeLists.txt
PR 13314 core/libs/prx/libc/CMakeLists.txt
PR 13316 core/libs/prx/libc/CMakeLists.txt
PR 13317 core/libs/prx/libc/CMakeLists.txt
PR 13318 core/libs/prx/libc/CMakeLists.txt
PR 13319 core/libs/prx/libc/CMakeLists.txt
PR 13320 core/libs/prx/libc/CMakeLists.txt
PR 13331 .gitmodules
PR 13381 core/libs/prx/libc/CMakeLists.txt
PR 13390 core/libs/prx/libc/CMakeLists.txt
docs/dev/debt/libc.md
PR 13449 core/libs/prx/libc/CMakeLists.txt
core/libs/prx/libc/src/exception/Exports.cpp
docs/dev/debt/libc.md
PR 13504 docs/dev/debt/libkernel.md
PR 13506 docs/dev/debt/libkernel.md
PR 13515 docs/dev/debt/libSceNKWebKit.md
PR 13536 core/libs/prx/libc/include/Api.hpp
core/libs/prx/libc/src/Math.cpp
PR 13560 docs/dev/debt/libkernel.md
PR 13578 .gitmodules
CMakeLists.txt
PR 13582 core/libs/prx/libkernel/Pthread/src/Thread.cpp
docs/dev/debt/libkernel.md
PR 13587 core/libs/prx/libkernel/Module/src/ModuleInfo.cpp
docs/dev/debt/libkernel.md
PR 13664 core/libs/prx/libkernel/Time/Time.cpp
PR 13730 core/libs/CMakeLists.txt
PR 13794 docs/dev/debt/libc.md
PR 13804 docs/dev/debt/libc.md
PR 13809 core/libs/prx/libc/CMakeLists.txt
docs/dev/debt/libc.md
PR 13814 core/libs/CMakeLists.txt
PR 13828 core/libs/prx/libc/include/Api.hpp
docs/dev/debt/libc.md
PR 13863 core/libs/prx/libSceAgcDriver/Execution/src/Driver/Synchronization/WaitMemory.cpp
PR 13920 core/libs/prx/libSceAgcDriver/Execution/src/Driver/Synchronization/WaitMemory.cpp
PR 13928 CMakeLists.txt
core/libs/prx/libSceAgcDriver/Execution/src/GuestMemory.cpp
PR 13929 CMakeLists.txt
core/libs/prx/libSceAgcDriver/Execution/src/GuestMemory.cpp
PR 13964 docs/dev/debt/libkernel.md
PR 13983 CMakeLists.txt
PR 14043 docs/dev/debt/libkernel.md
PR 14044 CMakeLists.txt
PR 14103 docs/dev/debt/libkernel.md
PR 14108 docs/dev/debt/libkernel.md
PR 14128 docs/dev/debt/libkernel.md
PR 14137 core/libs/prx/libSceAgcDriver/Execution/src/GuestMemory.cpp
PR 14138 docs/dev/debt/libSceNKWebKit.md
PR 14164 docs/dev/debt/libSceNKWebKit.md
PR 14183 docs/dev/debt/libkernel.md
PR 14190 core/libs/prx/libkernel/Pthread/include/Pthread.hpp
core/libs/prx/libkernel/Pthread/src/Thread.cpp
docs/dev/debt/libkernel.md
PR 14212 CMakeLists.txt
docs/dev/TechnicalDebt.md
docs/dev/debt/libSceAudioPropagation.md
docs/dev/debt/libSceNKWebKit.md
docs/dev/debt/libc.md
docs/dev/debt/libkernel.md
PR 14228 core/libs/CMakeLists.txt
PR 14259 docs/dev/debt/libSceNKWebKit.md
PR 14298 core/libs/prx/libc/CMakeLists.txt
docs/dev/debt/libc.md
PR 14304 core/libs/CMakeLists.txt
PR 14421 .gitmodules
PR 14448 .gitmodules
PR 14473 core/libs/prx/libSceAgcDriver/Execution/src/GuestMemory.cpp
PR 14478 docs/dev/debt/libSceNKWebKit.md
PR 14497 docs/dev/debt/libkernel.md
PR 14557 core/libs/prx/libkernel/Time/Time.cpp
PR 14588 core/libs/prx/libc/src/AllocatingStrings.cpp
core/libs/tests/GuestAllocatingStrings.cpp
docs/dev/debt/libc.md
PR 14595 core/libs/prx/libc/src/DinkumwareInternals.cpp
docs/dev/debt/libc.md
PR 14605 core/libs/prx/libSceAudio3d/Export.cpp
PR 14610 core/libs/prx/libc/include/Api.hpp
docs/dev/debt/libc.md
PR 14756 docs/dev/debt/libkernel.md
PR 14796 core/libs/prx/libc/include/Api.hpp
PR 14798 core/libs/CMakeLists.txt
PR 14860 docs/dev/debt/libSceNKWebKit.md
PR 14915 core/libs/prx/libc/src/DinkumwareInternals.cpp
docs/dev/debt/libc.md
PR 14917 docs/dev/debt/libSceNKWebKit.md
PR 14918 docs/dev/debt/libSceNKWebKit.md
PR 14919 docs/dev/debt/libSceNKWebKit.md
PR 14920 docs/dev/debt/libSceNKWebKit.md
PR 14921 docs/dev/debt/libSceNKWebKit.md
PR 14922 docs/dev/debt/libSceNKWebKit.md
PR 14923 docs/dev/debt/libSceNKWebKit.md
PR 14924 docs/dev/debt/libSceNKWebKit.md
PR 14926 docs/dev/debt/libSceNKWebKit.md
PR 14927 docs/dev/debt/libSceNKWebKit.md
PR 14928 docs/dev/debt/libSceNKWebKit.md
PR 14929 docs/dev/debt/libSceNKWebKit.md
PR 14930 docs/dev/debt/libSceNKWebKit.md
PR 14931 core/libs/prx/libSceNKWebKit/CMakeLists.txt
docs/dev/debt/libSceNKWebKit.md
PR 14932 core/libs/prx/libSceNKWebKit/CMakeLists.txt
docs/dev/debt/libSceNKWebKit.md
PR 14946 docs/dev/debt/libSceNKWebKit.md
PR 14947 docs/dev/debt/libSceNKWebKit.md
PR 14948 docs/dev/debt/libSceNKWebKit.md
PR 14949 core/libs/prx/libSceNKWebKit/CMakeLists.txt
docs/dev/debt/libSceNKWebKit.md
PR 15037 docs/dev/debt/libkernel.md
PR 15040 core/libs/prx/libkernel/DirectMemory/DirectMemory.cpp
core/libs/prx/libkernel/Pthread/include/Pthread.hpp
core/libs/prx/libkernel/Pthread/src/Thread.cpp
docs/dev/debt/libkernel.md
PR 15041 docs/dev/debt/libkernel.md
PR 15095 core/libs/prx/libc/CMakeLists.txt
docs/dev/debt/libc.md
docs/dev/debt/libkernel.md
PR 15111 core/libs/CMakeLists.txt
PR 15123 docs/dev/debt/libkernel.md
PR 15125 docs/dev/debt/libSceNKWebKit.md
PR 15136 core/libs/prx/libSceAgcDriver/Execution/src/GuestMemory.cpp
PR 15159 docs/dev/debt/libSceNKWebKit.md
PR 15160 docs/dev/debt/libSceNKWebKit.md
PR 15170 docs/dev/debt/libSceNKWebKit.md
PR 15173 docs/dev/debt/libSceNKWebKit.md
PR 15175 docs/dev/debt/libSceNKWebKit.md
PR 15178 docs/dev/debt/libSceNKWebKit.md
PR 15182 docs/dev/debt/libSceNKWebKit.md
PR 15184 docs/dev/debt/libSceNKWebKit.md
PR 15185 docs/dev/debt/libSceNKWebKit.md
PR 15206 docs/dev/debt/libc.md
PR 15214 docs/dev/debt/libSceNKWebKit.md
PR 15215 docs/dev/debt/libSceNKWebKit.md
PR 15230 docs/dev/debt/libSceNKWebKit.md
PR 15246 docs/dev/debt/libSceNKWebKit.md
PR 15258 docs/dev/debt/libSceNKWebKit.md
PR 15260 docs/dev/debt/libSceNKWebKit.md
PR 15293 docs/dev/debt/libSceNKWebKit.md
PR 15313 CMakeLists.txt
PR 15331 core/libs/CMakeLists.txt
PR 15336 core/libs/prx/libc/CMakeLists.txt
core/libs/prx/libc/include/Api.hpp
docs/dev/debt/libc.md
PR 15410 docs/dev/debt/libkernel.md
PR 15453 docs/dev/debt/libSceNKWebKit.md
PR 15464 docs/dev/debt/libSceNKWebKit.md
PR 15470 CMakeLists.txt
docs/dev/TechnicalDebt.md
PR 15484 core/libs/prx/libc/CMakeLists.txt
core/libs/prx/libc/include/Api.hpp
core/libs/prx/libc/src/MathExact.cpp
docs/dev/debt/libc.md
PR 15486 core/libs/prx/libc/include/Api.hpp
core/libs/prx/libc/src/exception/StandardExceptions.cpp
docs/dev/debt/libc.md
PR 15487 core/libs/prx/libSceAgcDriver/Execution/src/GuestMemory.cpp
PR 15490 core/libs/prx/libc/CMakeLists.txt
core/libs/prx/libc/include/Api.hpp
docs/dev/debt/libc.md
PR 15498 core/libs/prx/libSceNKWebKit/CMakeLists.txt
docs/dev/debt/libSceNKWebKit.md
PR 15501 core/libs/prx/libc/CMakeLists.txt
core/libs/prx/libc/include/Api.hpp
core/libs/prx/libc/src/MathExact.cpp
docs/dev/debt/libc.md
PR 15508 core/libs/prx/libkernel/System/src/SignalSets.cpp
docs/dev/debt/libkernel.md
PR 15510 docs/dev/debt/libkernel.md
PR 15511 docs/dev/debt/libkernel.md
PR 15515 docs/dev/debt/libSceNKWebKit.md
PR 15516 docs/dev/debt/libSceNKWebKit.md
PR 15517 core/libs/prx/libSceNKWebKit/CMakeLists.txt
docs/dev/debt/libSceNKWebKit.md
PR 15518 docs/dev/debt/libkernel.md
PR 15519 core/libs/prx/libc/CMakeLists.txt
core/libs/prx/libc/include/Api.hpp
core/libs/prx/libc/src/MathExact.cpp
docs/dev/debt/libc.md
PR 15524 docs/dev/debt/libkernel.md
PR 15529 core/libs/prx/libSceAgcDriver/Execution/src/GuestMemory.cpp
PR 15532 docs/dev/debt/libkernel.md
PR 15535 core/libs/prx/libc/CMakeLists.txt
docs/dev/debt/libc.md
PR 15549 docs/dev/debt/libkernel.md
PR 15550 docs/dev/debt/libkernel.md
PR 15551 core/libs/prx/libSceAgcDriver/Execution/src/GuestMemory.cpp
PR 15552 core/libs/prx/libc/include/Api.hpp
core/libs/prx/libc/src/exception/StandardExceptions.cpp
docs/dev/debt/libc.md
PR 15553 docs/dev/debt/libkernel.md
PR 15554 docs/dev/debt/libkernel.md
PR 15556 docs/dev/debt/libkernel.md
PR 15557 docs/dev/debt/libkernel.md
PR 15561 core/libs/prx/libc/CMakeLists.txt
core/libs/prx/libc/include/Api.hpp
docs/dev/debt/libc.md
PR 15562 docs/dev/debt/libkernel.md
PR 15567 core/libs/prx/libkernel/Pthread/src/Thread.cpp
docs/dev/debt/libkernel.md
PR 15571 core/libs/prx/libkernel/Pthread/src/Thread.cpp
docs/dev/debt/libkernel.md
PR 15578 core/libs/CMakeLists.txt
PR 15579 core/libs/CMakeLists.txt
PR 15582 core/libs/prx/libSceLibcInternal/Err.cpp
PR 15583 core/libs/prx/libc/CMakeLists.txt
core/libs/prx/libc/include/PreciseWait.hpp
PR 15597 core/libs/CMakeLists.txt
PR 15602 core/libs/prx/libc/CMakeLists.txt
core/libs/prx/libc/include/Api.hpp
docs/dev/debt/libc.md
PR 15613 core/libs/CMakeLists.txt
PR 15614 core/libs/prx/libc/CMakeLists.txt
core/libs/prx/libc/src/Math.cpp
docs/dev/debt/libc.md
PR 15615 core/libs/CMakeLists.txt
PR 15630 core/libs/CMakeLists.txt
PR 15638 core/libs/CMakeLists.txt
PR 15672 docs/dev/debt/libSceNKWebKit.md
PR 15683 core/libs/prx/libc/CMakeLists.txt
core/libs/prx/libc/include/Api.hpp
core/libs/prx/libc/src/DinkumwareInternals.cpp
docs/dev/debt/libc.md
PR 15686 docs/dev/debt/libSceNKWebKit.md
PR 15691 core/libs/prx/libkernel/Pthread/src/Thread.cpp
PR 15697 core/libs/prx/libc/include/Api.hpp
core/libs/prx/libc/src/exception/StandardExceptions.cpp
PR 15711 core/libs/prx/libSceLibcInternal/Err.cpp
core/libs/prx/libc/include/Api.hpp
PR 15712 core/libs/prx/libSceLibcInternal/Err.cpp
PR 15713 docs/dev/debt/libc.md
PR 15714 core/libs/prx/libc/include/Api.hpp
docs/dev/debt/libc.md
PR 15715 core/libs/prx/libSceLibcInternal/Err.cpp
PR 15748 docs/dev/debt/libkernel.md
PR 15749 docs/dev/debt/libkernel.md
PR 15768 docs/dev/debt/libc.md
PR 15773 docs/dev/debt/libc.md
PR 15775 docs/dev/debt/libkernel.md
PR 15776 docs/dev/debt/libkernel.md
PR 15781 docs/dev/debt/libkernel.md
PR 15782 docs/dev/debt/libkernel.md
PR 15785 docs/dev/debt/libkernel.md
PR 15791 core/libs/prx/libc/CMakeLists.txt
core/libs/prx/libc/include/Api.hpp
core/libs/prx/libc/src/exception/StandardExceptions.cpp
docs/dev/debt/libc.md
PR 15794 core/libs/prx/libkernel/System/src/Exception.cpp
docs/dev/debt/libkernel.md
PR 15796 core/libs/prx/libc/include/Api.hpp
core/libs/prx/libc/src/exception/StandardExceptions.cpp
docs/dev/debt/libc.md
PR 15809 core/libs/prx/libc/CMakeLists.txt
core/libs/prx/libc/include/Api.hpp
docs/dev/debt/libc.md
PR 15814 docs/dev/debt/libSceNKWebKit.md
PR 15815 docs/dev/debt/libSceNKWebKit.md
PR 15830 core/libs/prx/libSceLibcInternal/Err.cpp
PR 15834 core/libs/prx/libc/CMakeLists.txt
core/libs/prx/libc/include/Api.hpp
docs/dev/debt/libc.md
PR 15836 core/libs/CMakeLists.txt
PR 15838 core/libs/CMakeLists.txt
PR 15839 docs/dev/debt/libSceNKWebKit.md
PR 15840 core/libs/prx/libSceAgcDriver/Execution/src/GuestMemory.cpp
PR 15843 docs/dev/debt/libSceNKWebKit.md
PR 15845 core/libs/prx/libSceAgcDriver/Execution/src/Driver/Synchronization/WaitMemory.cpp
PR 15849 docs/dev/debt/libkernel.md
PR 15851 core/libs/CMakeLists.txt
PR 15853 docs/dev/debt/libSceNKWebKit.md
PR 15866 docs/dev/debt/libSceNKWebKit.md
PR 15867 docs/dev/debt/libSceNKWebKit.md
PR 15879 core/libs/prx/libc/CMakeLists.txt
core/libs/prx/libc/include/Api.hpp
docs/dev/debt/libc.md
PR 15884 docs/dev/debt/libkernel.md
PR 15891 docs/dev/debt/libSceNKWebKit.md
PR 15907 CMakeLists.txt
PR 15912 core/libs/prx/libc/src/AllocatingStrings.cpp
core/libs/tests/GuestAllocatingStrings.cpp
PR 15923 core/libs/prx/libc/CMakeLists.txt
PR 15927 core/libs/CMakeLists.txt
PR 15950 CMakeLists.txt
PR 15953 CMakeLists.txt
PR 15967 core/libs/prx/libSceAgcDriver/Execution/src/GuestMemory.cpp
PR 15973 docs/dev/debt/libc.md
PR 15989 core/libs/prx/libSceLibcInternal/Err.cpp
PR 16004 core/libs/prx/libc/include/Api.hpp
core/libs/prx/libc/src/exception/StandardExceptions.cpp
docs/dev/debt/libc.md
PR 16016 docs/dev/debt/libSceNKWebKit.md
PR 16017 docs/dev/debt/libc.md
PR 16018 core/libs/CMakeLists.txt
PR 16039 .gitmodules
PR 16041 docs/dev/debt/libSceNKWebKit.md
PR 16042 core/libs/tests/GuestAudioPropagation.cpp
PR 16052 core/libs/CMakeLists.txt
PR 16061 docs/dev/debt/libkernel.md
PR 16065 docs/dev/debt/libSceNKWebKit.md
PR 16066 docs/dev/debt/libSceNKWebKit.md
PR 16107 core/libs/prx/libc/CMakeLists.txt
docs/dev/debt/libc.md
PR 16123 docs/dev/debt/libSceNKWebKit.md
PR 16127 docs/dev/debt/libSceNKWebKit.md
PR 16142 docs/dev/debt/libSceNKWebKit.md
PR 16166 docs/dev/debt/libSceNKWebKit.md
PR 16170 docs/dev/debt/libc.md
PR 16171 docs/dev/debt/libSceNKWebKit.md
PR 16174 docs/dev/debt/libkernel.md
PR 16175 core/libs/prx/libSceAgcDriver/Execution/src/GuestMemory.cpp
PR 16178 core/libs/prx/libc/CMakeLists.txt
core/libs/prx/libc/include/Api.hpp
docs/dev/debt/libc.md
PR 16179 core/libs/prx/libSceAudio3d/Export.cpp
PR 16198 docs/dev/debt/libkernel.md
PR 16204 core/libs/prx/libSceAgcDriver/Execution/src/Driver/Synchronization/WaitMemory.cpp
PR 16210 core/libs/prx/libc/src/Math.cpp
core/libs/prx/libc/src/Strings.cpp
docs/dev/debt/libc.md
PR 16212 CMakeLists.txt
PR 16214 core/libs/prx/libc/CMakeLists.txt
core/libs/prx/libc/include/Api.hpp
docs/dev/debt/libc.md
PR 16215 docs/dev/debt/libkernel.md
PR 16216 docs/dev/debt/libc.md
PR 16243 docs/dev/debt/libkernel.md
PR 16261 docs/dev/debt/libSceNKWebKit.md
PR 16305 core/libs/prx/libc/include/Api.hpp
PR 16308 core/libs/prx/libc/src/Strings.cpp
PR 16316 docs/dev/debt/libSceNKWebKit.md
PR 16318 docs/dev/debt/libSceNKWebKit.md
PR 16333 core/libs/prx/libkernel/DirectMemory/DirectMemory.cpp
PR 16346 core/libs/prx/libSceJobManager/Export.cpp
PR 16352 docs/dev/debt/libkernel.md
PR 16372 core/libs/prx/libSceAgcDriver/Execution/src/GuestMemory.cpp
PR 16378 docs/dev/debt/libkernel.md
PR 16379 docs/dev/debt/libkernel.md
PR 16380 core/libs/prx/libkernel/System/src/Exception.cpp
PR 16383 docs/dev/debt/libSceNKWebKit.md
PR 16386 docs/dev/debt/libSceNKWebKit.md
PR 16391 CMakeLists.txt
PR 16401 core/libs/prx/libkernel/Pthread/include/Pthread.hpp
core/libs/prx/libkernel/Pthread/src/Thread.cpp
docs/dev/debt/libkernel.md
PR 16411 core/libs/prx/libSceAgcDriver/Execution/src/GuestMemory.cpp
PR 16412 core/libs/prx/libc/CMakeLists.txt
core/libs/prx/libc/include/Api.hpp
core/libs/prx/libc/src/Strings.cpp
PR 16414 core/libs/CMakeLists.txt
PR 16416 core/libs/prx/libc/CMakeLists.txt
core/libs/prx/libc/include/Api.hpp
PR 16418 core/libs/prx/libc/CMakeLists.txt
core/libs/prx/libc/include/Api.hpp
PR 16420 core/libs/prx/libSceAgcDriver/Execution/src/GuestMemory.cpp
PR 16428 core/libs/prx/libc/CMakeLists.txt
core/libs/prx/libc/include/Api.hpp
core/libs/prx/libc/src/Math.cpp
PR 16429 docs/dev/debt/libSceNKWebKit.md
PR 16435 core/libs/prx/libc/CMakeLists.txt
core/libs/prx/libc/include/Api.hpp
core/libs/prx/libc/src/Math.cpp
PR 16437 core/libs/prx/libkernel/Time/Time.cpp
docs/dev/debt/libkernel.md
PR 16438 core/libs/prx/libc/CMakeLists.txt
core/libs/prx/libc/include/Api.hpp
core/libs/prx/libc/src/Math.cpp
PR 16441 docs/dev/debt/libkernel.md
PR 16445 docs/dev/debt/libSceNKWebKit.md
PR 16449 docs/dev/debt/libSceNKWebKit.md
PR 16451 docs/dev/debt/libSceNKWebKit.md
PR 16453 docs/dev/debt/libSceNKWebKit.md
PR 16454 docs/dev/debt/libSceNKWebKit.md
PR 16456 docs/dev/debt/libSceNKWebKit.md
PR 16457 core/libs/prx/libc/CMakeLists.txt
core/libs/prx/libc/include/Api.hpp
PR 16463 core/libs/CMakeLists.txt
docs/dev/debt/libkernel.md
PR 16464 docs/dev/debt/libSceNKWebKit.md
PR 16489 docs/dev/debt/libkernel.md
PR 16493 docs/dev/debt/libkernel.md
PR 16497 core/libs/CMakeLists.txt
PR 16507 .gitmodules
CMakeLists.txt
Report truncated: 12 more lines omitted.

@GiannisG1

Copy link
Copy Markdown
Contributor

@oberonlift #15691 changes the same two places in Thread.cpp (pr-overlap lists this stack as a conflict there). It adds Aps5CallOnGuestMainStack_nid_no_patch between GuestMainStackBytes() and EnterGuestMainStack_nid_no_patch, and replaces the inline asm with a call to it. The two compose: the helper goes inside your #ifndef ANYPS5_GUEST_LIFTED block next to GuestMainStackBytes(), and the non-lifted branch calls it instead of the inline asm. Whichever lands second rebases; either order is fine with me.

@github-actions github-actions Bot added the needs rebase Conflicts with main, rebase needed label Nov 7, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agc libSceAgc* build ci .github docs libc libkernel needs rebase Conflicts with main, rebase needed prx

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants